springcloud微服务后台框架架构搭建

1.*父类搭建

IDE-idea
jdk,maven都是1.8版本

1.新建一个普通的maven项目
新建项目流程类似,这里截图一次,有其他操作的另外截图
springcloud微服务后台框架架构搭建
springcloud微服务后台框架架构搭建
springcloud微服务后台框架架构搭建
springcloud微服务后台框架架构搭建
这里先不在pom.xml中导入依赖,结构搭建起来了再根据需求导入对应的依赖

2.aigou_eureka_server7001

springcloud微服务后台框架架构搭建
springcloud微服务后台框架架构搭建
springcloud微服务后台框架架构搭建
springcloud微服务后台框架架构搭建

公共通用子模块以及平台子模块的搭建
springcloud微服务后台框架架构搭建
springcloud微服务后台框架架构搭建
springcloud微服务后台框架架构搭建
就得到如下层级结构
springcloud微服务后台框架架构搭建
得到如下层次结构
springcloud微服务后台框架架构搭建
这样项目结构就搭建好了
springcloud微服务后台框架架构搭建
*父类pom.xml配置文件

<!--*父类的pom配置-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR1</spring-cloud.version>
        <springboot.version>2.0.5.RELEASE</springboot.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${springboot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>

3.aigou2_eureka_server_7001注册中心的配置

eureka的pom.xml

<dependencies>
        <!--web的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--test的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!--eureka的服务依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

配置application.yml

server:
  port: 7001
eureka:
  instance:
    hostname: eureka-7001.com
  client:
    fetch-registry: false #是否注册到eureka
    register-with-eureka: false #是否从服务获取注册信息
    service-url:
      defaultZone: http://www.eureka-7001.com:7001/eureka/ #这里是另一个中心的地址

创建启动类

@SpringBootApplication
@EnableEurekaServer //eureka注册中心的服务端
public class aigou_EurekaApplication7001 {

    public static void main(String[] args) {
        SpringApplication.run(aigou_EurekaApplication7001.class);
    }
}

springcloud微服务后台框架架构搭建

4.返回数据AjaxResult的创建

这个数据结构比较重要

package cn.itsource.aigou;

public class AjaxResult {
    private Boolean success =true; //操作是否成功
    private String msg="操作成功";  //默认信息
    private Object object; //返回的数据,以对象的形式返回

    public AjaxResult(Boolean success, String msg, Object object) {
        this.success = success;
        this.msg = msg;
        this.object = object;
    }
    public AjaxResult() {
    }
    //准备一个静态方法me(),
    public static AjaxResult me(){
        return new AjaxResult();
    }
    public Boolean getSuccess() {
        return success;
    }
    public AjaxResult setSuccess(Boolean success) {
        this.success = success;
        return this;
    }
    public String getMsg() {
        return msg;
    }
    public AjaxResult setMsg(String msg) {
        this.msg = msg;
        return this;
    }
    public Object getObject() {
        return object;
    }
    //设置对象,返回自己,return this,为链式编程做准备
    public AjaxResult setObject(Object object) {
        this.object = object;
        return this;
    }
    @Override
    public String toString() {
        return "AjaxResult{" +
                "success=" + success +
                ", msg='" + msg + '\'' +
                ", object=" + object +
                '}';
    }
}

以上是写在aigou_basic_parent中的子模块aigou_basic_util下的src/java下
springcloud微服务后台框架架构搭建

5.swagger接口文档提供

微服务一般都前后端分离,因此,后端写好接口会应当让前台能够随时查看,为了后期项目合成统一简单,但是通过swagger的方式,有代码侵入的问题,但是影响不大
swagger在zuul中需要配置,在某个自己的服务中也需要配置
下面是在zuul中的swagger配置
pom.xm;配置

<dependencies>
        <dependency>
            <groupId>cn.itsource.aigou</groupId>
            <artifactId>aigou_basic_util</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!--zuul的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!--注册中心的客户端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!--zuul网关-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>
        <!--网关中导入swagger的依赖-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
    </dependencies>

application.yml

server:
  port: 9527 #zuul网关的端口
spring:
  application:
    name: AIGOU-ZUUL-GATEWAY #zuul网关服务的名字
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka
  instance:
    instance-id: gateway-9527.com
    prefer-ip-address: true
zuul:
  routes:
      aigouUser.serviceId: USER-PROVIDER #服务id
      aigouUser.path: /user/** #服务路径
  ignored-services: "*"
  prefix: /aigou #前缀

启动类

@SpringBootApplication
@EnableEurekaClient
@EnableZuulProxy
public class ZuulApplication_9527 {

    public static void main(String[] args) {
        SpringApplication.run(ZuulApplication_9527.class);
    }
}

两个配置类–>
DocumentationConfig类

@Component
@Primary
public class DocumentationConfig implements SwaggerResourcesProvider {
    @Override
    public List<SwaggerResource> get() {
        List resources = new ArrayList<>();
       //aigou网关前缀,employee网关路径   ;swagger的路径 ,以后增加了接口就在这配置就ok
        resources.add(swaggerResource("用户系统", "/aigou/user/v2/api-docs", "2.0"));
        resources.add(swaggerResource("商品系统", "/aigou/product/v2/api-docs", "2.0"));
        resources.add(swaggerResource("基础系统", "/aigou/common/v2/api-docs", "2.0"));
        return resources;
    }
    private SwaggerResource swaggerResource(String name, String location, String version) {
        SwaggerResource swaggerResource = new SwaggerResource();
        swaggerResource.setName(name);
        swaggerResource.setLocation(location);
        swaggerResource.setSwaggerVersion(version);
        return swaggerResource;
    }
}

SwaggerConfig

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo());
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("分布式购物系统")
                .description("购物系统接口文档说明")
                .termsOfServiceUrl("http://localhost:8081")
                .contact(new Contact("wbtest", "", "[email protected]"))
                .version("1.0")
                .build();
    }
}

网关中配置好了,每个服务在自己的配置中心依照类似的配置配置就好了
得到如下结果
springcloud微服务后台框架架构搭建
springcloud微服务后台框架架构搭建
其自己服务中配置得到的结果
springcloud微服务后台框架架构搭建

6.postman的使用介绍

postman是一款,接口测试工具
springcloud微服务后台框架架构搭建
根据AjaxResult和逻辑判断得到如下结果

springcloud微服务后台框架架构搭建
先这样!tata