springcloud-config

SpringCloud-Config

spring cloud config 分为服务端客户端两部分。

  • 服务端:Config Server,配置中心。 独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,一般从git上读取配置
  • 客户端:Client 连接服务端,获取配置,管理应用资源,在启动时从配置中心加载配置

git配置中心

  • application.yml 服务端

    spring:
      profiles:
        active: dev
    ---
    spring:
      profiles: dev
      application:
        name: springcloud-config-dev
    ---
    spring:
      profiles: test
      application:
        name: springcloud-config-test
    
  • config-client.yml 客户端

    spring:
      profiles:
        active: dev
    ---
    #Eureka配置,服务注册到哪里
    server:
      port: 8201
    eureka:
      client:
        service-url:
          defaultZone: http://eureka7003.com:7003/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7001.com:7001/eureka/
    
    #spring配置
    spring:
      profiles: dev
      application:
        name: springcloud-provider-dept
        
    ---
    #Eureka配置,服务注册到哪里
    server:
      port: 8202
    eureka:
      client:
        service-url:
          defaultZone: http://eureka7003.com:7003/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7001.com:7001/eureka/
    
    #spring配置
    spring:
      profiles: test
      application:
        name: springcloud-provider-dept
    

服务端

  • 依赖

    <dependencies>
    
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-config-server -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>
    
        <!--eureka完善监控信息-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    
    </dependencies>
    
  • yml配置

    server:
      port: 3344
    spring:
      application:
        name: springcloud-config-server
      #连接远程仓库
      cloud:
        config:
          server:
            git:
              uri: https://gitee.com/jin_pengyong/springcloud-config.git #git上项目路径,http,非ssh
    
  • 启动类

    @SpringBootApplication
    @EnableConfigServer
    public class Config_server_3344 {
        public static void main(String[] args) {
            SpringApplication.run(Config_server_3344.class, args);
        }
    }
    

测试:访问http://localhost:3344/master/application-dev.yml读取application.yml配置中dev环境

http://localhost:3344/master/config-client-dev.yml读取config-client.yml配置文件中dev环境

客户端

  • 依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-config -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
            <version>2.1.3.RELEASE</version>
        </dependency>
    
        <!--eureka完善监控信息-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
    
  • yml配置

    • application.yml:用户级配置

      #用户级配置
      spring:
        application:
          name: springcloud-config-client-3355
      
    • bootstrap:系统级配置

      #系统级配置
      spring:
        cloud:
          config:
            uri: http://localhost:3344
            name: config-client #需要从git上读取的资源名称,不要后缀
            profile: dev #环境
            label: master #分支
      
  • 测试

    • 启动类

      @SpringBootApplication
      public class ConfigClient_3355 {
          public static void main(String[] args) {
              SpringApplication.run(ConfigClient_3355.class, args);
          }
      }
      
    • controller

    @RestController
    public class ConfigClientController {
    
        //这里读取的都是远程git服务器上
        @Value("${spring.application.name}")
        private String applicationName;
    
        @Value("${eureka.client.service-url.defaultZone}")
        private String eurekaServer;
    
        @Value("${server.port}")
        private String port;
    
        @RequestMapping("config")
        public String getConfig() {
            return "applicationName==>" + applicationName + ",eurekaServer==>" + eurekaServer + ",port==>" + port;
        }
    }
    
  • 访问:http://localhost:8201/config通过获取信息,此时修改bootstrap.yml中profile为test,就可以通过8202端口访问

posted @   jpy  阅读(6)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示