zoukankan      html  css  js  c++  java
  • 从零搭建一个SpringCloud项目之Config(五)

    配置中心

    一、配置中心服务端

    1. 新建项目study-config-server
    2. 引入依赖
    <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-config-server</artifactId>
    </dependency>
    
    1. 加配置文件
    server:
      port: 9100
    spring:
      application:
        name: study-config-server
      cloud:
        config:
          server:
            git:
              uri: https://github.com/mmcLine/cloudconfigTest.git
              username: mmcLine
              password: ********
    
    
    1. 加注解 @EnableConfigServer
    @SpringBootApplication
    @EnableConfigServer
    public class StudyConfigApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(StudyConfigApplication.class);
        }
    }
    
    1. 创建一个git项目,并在根目录下新建一个application.yml文件
    spring:
      profiles:
        active: test
    ---
    spring:
      profiles: test
      application:
        name: config-test
    
    server:
      port:9101
    ---
    spring:
      profiles: prod
      application:
        name: config-prod
    
    server:
      port:9102
    
    1. 访问规则

    二、配置中心客户端

    1. 引入依赖
     <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-config</artifactId>
     </dependency>
    
    1. 配置文件,新增bootstrap.yml文件
    spring:
      application:
        name: study-trade
      cloud:
        config:
          uri: http://localhost:9100
          profile: test
          label: master
    

    注意:git上的配置yml文件名要对应这里配置的spring.application.name

    1. git配置文件演示

    1. 测试配置是否生效
    @RestController
    public class ConfigTestController {
    
    
        @Value("${ordernotiry}")
        private Boolean ordernotiry;
    
        @RequestMapping("/testconfig")
        public String testconfig(){
            return String.valueOf(ordernotiry);
        }
    }
    
    

    到此最简单的配置中心搭建完成!!!

    三、升级不重启修改配置文件

    整合bus的方案

    服务端修改:

    1. 加依赖
    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-bus-amqp</artifactId>
     </dependency>
    
    1. 启动一个rabbitmq
    2. 配置文件
    spring:
      cloud:
        bus:
          enabled: true
          trace:
            enabled: true
      rabbitmq:
        host: localhost
        port: 5672
        username: guest
        password: guest
    
    management:
      endpoints:
        web:
          exposure:
            include: "bus-refresh"
    

    客户端:

    1. 加依赖
    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-bus-amqp</artifactId>
     </dependency>
    
    1. 加注解

    在读取配置的类上加@RefreshScope注解

    @RestController
    @RefreshScope
    public class ConfigTestController {
    
    
        @Value("${ordernotiry}")
        private Boolean ordernotiry;
    
        @RequestMapping("/testconfig")
        public String testconfig(){
            return String.valueOf(ordernotiry);
        }
    }
    
    1. git上修改配置文件后,post方式调用http://localhost:9100/actuator/bus-refresh即可

    四、配置加密

    1. 下载jce文件

    https://www.oracle.com/java/technologies/javase-jce8-downloads.html

    1. 放入Javajdk1.8.0_112jrelibsecurity目录下替换掉原有jar包
    2. 在config-server的bootstrap.yml(application.yml里不行)文件里加配置
    encrypt:
      key: trademmc
    
    1. 测试

    http://localhost:9100/encrypt/status

    返回OK代表配置成功
    5. 测试加密方法

    1. 解密方法

    http://localhost:9100/decrypt

    1. 在配置文件中就可以写密文了

    密文内容前需要写{cipher},并且用单引号括起来

    loginpass: '{cipher}941c15446567e8211931cf0d25f81696871f5a5ea74fac46638eed71db24e76b'
    
    1. 加上安全配置

    避免直接访问配置文件

    • 在config-server里加依赖
     <!-- 安全配置 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
    
    • bootstrap.yml配置文件里开启
    spring:
      security:
        user:
          name: root
          password: 123456
        basic:
          enable: true
    
    • 客户端里也要配置相应的密码
    spring:
      cloud:
        config:
          uri: http://localhost:9100
          profile: test
          label: master
          username: root
          password: 123456
    
    

    git地址:https://github.com/mmcLine/spring-cloud-study

  • 相关阅读:
    ZOJ 2588 Burning Bridges
    POJ 1966 ZOJ 2182 Cable TV Network
    HDU 5348 MZL's endless loop
    HDU 5352 MZL's City
    Tarjan算法求解无向连通图的割点、割边、点双连通分量和边双连通分量的模板
    ZOJ 1119 SPF
    HDU 3452 Bonsai
    HDU 1520 Anniversary party
    POJ 2239 Selecting Courses
    POJ 1144 Network
  • 原文地址:https://www.cnblogs.com/javammc/p/12716691.html
Copyright © 2011-2022 走看看