Spring_Cloud新建基础模块

1.创建模块

2.导入eruaka-client,web,config-client

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- Eureka 客户端依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
        </dependency>
    </dependencies>

3.配置Application,yml基础配置

@SpringBootApplication
@EnableEurekaClient
public class CourseApplication1060 {
    public static void main(String[] args) {
        SpringApplication.run(CourseApplication1060.class);
    }
}

4.MyBatis-Plus

1.修改目录路径

#代码输出基本路径
OutputDir=F:/IDEAWorkSpace/myhrm-parent/hrm-course-parent/hrm-course-service-1060/src/main/java

#mapper.xml SQL映射文件目录
OutputDirXml=F:/IDEAWorkSpace/myhrm-parent/hrm-course-parent/hrm-course-service-1060/src/main/resources

#domain的输出路径
OutputDirBase=F:/IDEAWorkSpace/myhrm-parent/hrm-course-parent/hrm-course-common/src/main/java
View Code

2.修改数据库

#数据库连接信息
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///hrm-course
jdbc.user=root
jdbc.pwd=123456

修改主类的配置及需要的位置

5.修改pom导入需要的数据库连接Swwager等公共包

<dependency>
            <groupId>cn.jiedada</groupId>
            <artifactId>hrm-system-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>cn.jiedada</groupId>
            <artifactId>hrm-basic-util</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.9</version>
        </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>
View Code

 

6.修改application.yml和bootstrap.yml中的配置及zuul中的配置

application.yml

server:
  port: 1060
spring:
  application:
    name: course-service
  datasource:
        username: root
        password: 123456
        url: jdbc:mysql:///hrm-course
        driver-class-name: com.mysql.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource
eureka:
  client:
    service-url:
      defaultZone: http://localhost:1010/eureka
  instance:
    prefer-ip-address: true
    instance-id: course-server:1060
mybatis-plus: #集成MyBatis-Plus
  mapper-locations: classpath:cn/jiedada/hrm/mapper/*Mapper.xml
  #type-aliases-package: cn.itsource.hrm.domain,cn.itsource.hrm.query
View Code

bootstrap.yml

#配置中心的地址
spring:
  cloud:
    config:
      uri: http://localhost:1030 #zuul要从配置中心拉取文件
      name: application-course  #配置文件名字   dev是环境
      profile: dev #环境  组成完整的文件名:application-zuul-dev.yml
View Code

zuul.yml

eureka:
  client:
    serviceUrl: #注册到EurekaServer
      defaultZone: http://localhost:1010/eureka/
  instance:
    prefer-ip-address: true
    instance-id: zuul-server:1020
spring:
  application:
    name: zuul-server
server:
  port: 1020
zuul:
  prefix: "/hrm"  #统一访问前缀
  ignoredServices: "*"  #禁用掉使用浏览器通过服务名的方式访问服务
  routes:
    system-service: "/system/**"   #指定pay-server这个服务使用 /pay路径来访问  - 别名
    file-service: "/file/**"   #指定pay-server这个服务使用 /pay路径来访问  - 别名
    course-service: "/course/**"   #指定pay-server这个服务使用 /pay路径来访问  - 别名

 7.添加两个配置类

package cn.jiedada.hrm.config;

import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@MapperScan("cn.jiedada.hrm.mapper") //mapper接口扫描
@EnableTransactionManagement  //事务管理
public class MybatisPlusConfig {

    /**
     * 分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}
View Code
package cn.jiedada.hrm.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class Swagger2 {
 
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                //对外暴露服务的包,以controller的方式暴露,所以就是controller的包.
                .apis(RequestHandlerSelectors.basePackage("cn.jiedada.hrm.web.controller"))
                .paths(PathSelectors.any())
                .build();
    }


    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("课程中心接口API")
                .description("课程中心接口API"文档说明")
                .contact(new Contact("jiedada", "", "jiedada@shuaiqi.cn"))
                .version("1.0")
                .build();
    }

}
View Code

 在zuul中的Swwager中添加这行代码

       resources.add(swaggerResource("课程中心", "/hrm/course/v2/api-docs", "2.0"));
View Code

这是整体代码

package cn.jiedada.hrm.config;

import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import springfox.documentation.swagger.web.SwaggerResource;
import springfox.documentation.swagger.web.SwaggerResourcesProvider;

import java.util.ArrayList;
import java.util.List;

@Component
@Primary
public class DocumentationConfig implements SwaggerResourcesProvider {
    @Override
    public List<SwaggerResource> get() {
       List resources = new ArrayList<>();
        /**
         * zuul:
         prefix: "/hrm"  #统一访问前缀
         ignoredServices: "*"  #禁用掉使用浏览器通过服务名的方式访问服务
         routes:
         system-service: "/system/**"   #指定pay-server这个服务使用 /pay路径来访问  - 别名
         */
       //需要修改为服务的配置的服务的处理/前置服务/服务名称/v2/api-docs
       resources.add(swaggerResource("系统管理", "/hrm/system/v2/api-docs", "2.0"));
       resources.add(swaggerResource("课程中心", "/hrm/course/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;
    }
}
View Code
原文地址:https://www.cnblogs.com/xiaoruirui/p/13650825.html