已经4天没有更新了,怎么说呢,就很忙,很忙,很忙。主要仍是毕业以及从一个城市到另一个城市的事情,这段时间尽最大可能保持2,3天一更,最晚不超过4,5天一更。java
随着模块的增多,会出现配置文件繁杂的通病,每次都要打开好多层目录才能找到配置文件,SpringCloud中的Config组件就是为了解决这个问题,经过简单的配置就能实现配置文件的统一管理。git
建立Config空父模块,在下面创建一个config-server子模块,修改子模块的pom文件github
注意是子模块的pom文件,不像之前同样修改的是空父模块的pom文件
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> </dependencies>
由于暂时不必注册进Eureka中,因此配置文件的编写仍是比较简单的spring
server: port: 8101 spring: cloud: config: server: git: uri: https://gitee.com/cutey_none/springcloud-study-config username: password: label: master
spring.cloud.config.server.git.uri
:存放文件的地址,到时候客户端就从这里获取配置文件,能够本地,也能够是gitbootstrap
若是是公开仓库,那么username
和password
不用写
由于建立的springcloud-study-config
仓库设置的权限开放的,因此直接用个人也行,本身建立也行,就正常github或者gitee建立一个仓库就好。app
仓库放置的是各个微服务的配置文件
例子是管理config-client
微服务(后面会建立)的配置文件,因此须要在仓库中建立一个config-client-dev.properties
(-dev表示是开发环境下的配置文件)微服务
config-client-dev.properties
文件的内容以下,能够看做是config-client
服务的某些配置测试
增长@EnableConfigServer
注解以提供config服务支持spa
@SpringBootApplication @EnableConfigServer public class ConfigServer8101 { public static void main(String[] args) { SpringApplication.run(ConfigServer8101.class, args); } }
SpringCloud Config有本身http服务访问资源的形式code
/{application}/{profile}[/{label}]
>> /config-client/dev
/{application}-{profile}.yml
>> /config-client-dev.yml
/{label}/{application}-{profile}.yml
>> /master/config-client-dev.yml
/{application}-{profile}.properties
>> /config-client-dev.properties
/{label}/{application}-{profile}.properties
>> /master/config-client-profile.properties
单个运行ConfigServer8101
项目便可,用上述5种方式访问资源,能够看到均能成功从服务端访问资源
前面一直说的config-client
就是接下来要建立的模块,最终的项目结构目录以下
接着修改config-client9501
模块的pom文件,注意服务端和客户端引入的依赖是不同的
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> </dependencies>
配置文件注意命名是
bootstrap.yml
由于客户端要设置服务端的uri,因此应该优先加载客户端配置文件
server: port: 9501 spring: application: name: config-client cloud: config: profile: dev label: master uri: http://localhost:8101
spring.cloud.config.uri
:服务端的地址,去哪里取配置文件
@SpringBootApplication @RestController public class ConfigClient9501 { public static void main(String[] args) { SpringApplication.run(ConfigClient9501.class, args); } @Value("${name}") String name; @GetMapping("/hi") public String hello() { return "hello, " + name; } }
在这里可能会遇到提示找不到占位符${name},那确定是哪一方面没有按照步骤来了
注意哈,上面客户端的配置文件中是没有name这个变量的
服务端的项目不用中止,再开启config-client9501
项目,开启的项目以下
下面访问localhost:9501/hi ,正常的状况下能够看到以下
其实已经抽蛮多的零碎时间来写了,可是有时候遇到了一些问题也仍是须要尽量弄懂再通俗地讲出来,但愿能帮到看这篇文章的小伙伴啦!!!
创做不易,若是对你有帮助,欢迎点赞,收藏和分享啦!
下面是我的公众号,有兴趣的能够关注一下,说不定就是你的宝藏公众号哦,基本2,3天1更技术文章!!!