定位资源的默认策略是克隆一个git仓库(在spring.cloud.config.server.git.uri),并使用它来初始化一个迷你SpringApplication。小应用程序的Environment用于枚举属性源并通过JSON端点发布。
HTTP服务具有以下格式的资源:
/{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.properties其中“应用程序”作为SpringApplication中的spring.config.name注入(即常规的Spring Boot应用程序中通常是“应用程序”),“配置文件”是活动配置文件(或逗号分隔列表的属性),“label”是可选的git标签(默认为“master”)。
测试访问:3344/application-dev.yml
测试访问 :3344/application/test/master
测试访问 :3344/master/application-dev.yml
如果测试访问不存在的配置则不显示 如::3344/master/application-aaa.yml
客户端将本地git仓库springcloud-config文件夹下新建的config-client.yml提交到码云仓库:
新建一个springcloud-config-client-3355模块,并导入依赖
<!--config--> <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-start --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> <version>2.1.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>resources下创建application.yml和bootstrap.yml配置文件
bootstrap.yml 是系统级别的配置
# 系统级别的配置 spring: cloud: config: name: config-client # 需要从git上读取的资源名称,不要后缀 profile: dev label: master uri: :3344application.yml 是用户级别的配置
# 用户级别的配置 spring: application: name: springcloud-config-client创建controller包下的ConfigClientController.java 用于测试
@RestController public class ConfigClientController { @Value("${spring.application.name}") private String applicationName; //获取微服务名称 @Value("${eureka.client.service-url.defaultZone}") private String eurekaServer; //获取Eureka服务 @Value("${server.port}") private String port; //获取服务端的端口号 @RequestMapping("/config") public String getConfig(){ return "applicationName:"+applicationName + "eurekaServer:"+eurekaServer + "port:"+port; } }主启动类
@SpringBootApplication public class ConfigClient { public static void main(String[] args) { SpringApplication.run(ConfigClient.class,args); } }测试:
启动服务端Config_server_3344 再启动客户端ConfigClient
访问::8201/config/
这里配置文件内容不再列举直接到代码中看把。
新建springcloud-config-eureka-7001模块,并将原来的springcloud-eureka-7001模块下的内容拷贝的该模块。