zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    第三话-单一职责原则
    2014辽宁省赛 Repeat Number
    【iOS】Swift字符串截取方法的改进
    Android中特殊图形的生成样例
    Tiny server:小型Web服务器
    C语言复合字面量的使用
    浅析数据库连接池(一)
    答复学习汇编不顺利的准大学生
    Struts2拦截器
    7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml
  • 原文地址:https://www.cnblogs.com/xiaoruirui/p/13650825.html
Copyright © 2011-2022 走看看