微服务里分别创建自己的bootstrap.properties
1.引入依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
必须加上bootstrap依赖,才能读取bootstrap.yml或者bootstrap.properties
<!-- 支持 bootstrap.properties 或 bootstrap.yml 配置文件 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> <version>3.1.3</version> </dependency>
2.创建bootstrap.properties
配置spring.application.name
配置spring.cloud.nacos.config.server-addr
3.给nacos配置中心添加一个数据集(DataId)默认规则:应用名.properties
4.给应用名.properties添加任何配置
5.动态获取配置
@RefreshScope 动态获取并刷新配置 添加到controller上
@Value("${配置项的名}) 获取配置
nacos配置中心与当前应用里配置了相同项,优先使用配置中心
细节:
命名空间:配置隔离
默认public;默认新增的配置都在public
1,可以环境隔离;因dev、test、prod 环境不同 可以创建命名空间,当多个命名空间有相同配置
bootstrap.properties中 配置 spring.cloud.nacos.config.namaspace= 9de.........如下
2.可以基于每一个微服务互相隔离;每一个微服务都创建自己的命名空间
配置集:所有配置的集合就叫配置集
配置集ID:类似于文件名及nacos配置中心里的 DataID
配置分组:默认所有的配置集都属于DEFAULT_GROUP
bootstrap.properties中 配置 spring.cloud.nacos.config.group=1111
基于业务定制,如双11,618 用不同的配置
具体
每个微服务创建自己的命名空间,使用配置分组区分环境,dev,test,prod
例如:coupon服务下面的两个环境,dev ,prod,只需要修改bootstrap.properties里的group即可
加载多个配置集:
微服务任何配置信息都可以放在nacos配置中心
只要在bootstrap.properties里说明加载nacos配置中心哪些配置文件即可
@Value @configurationProperties 。。。以前springBoot任何方法从配置文件中获取值,都能使用
配置中心有的优先使用配置中心的,最终微服务里只剩下bootstrap.properties即可,为了开发方便,生产时再放到nacos即可
例如:
datasource、框架有关的拆分多个
修改bootstrap.properties如下
spring.cloud.nacos.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.ext-config[0].group=dev
spring.cloud.nacos.ext-config[0].refresh=true
spring.cloud.nacos.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.ext-config[1].group=dev
spring.cloud.nacos.ext-config[1].refresh=true
spring.cloud.nacos.ext-config[2].data-id=other.yml
spring.cloud.nacos.ext-config[2].group=dev
spring.cloud.nacos.ext-config[2].refresh=true