在之前笔记中,我们搭建了nacos的环境,环境搭建参考:一、springCloudAlibaba-nacos环境搭建。现在来用下它的配置中心。
1、参考文档
几乎都是参考这个官方文档来的
https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config
2、环境搭建
pom.xml引入配置
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
这里就只引入配置了,不引入发现了
application.yml
server:
port: 8015
官方文档说,配置中心的配置要配在bootstrap.properties
spring.application.name=nacos-config
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
但我试了,把上面的配置在application.yml也是可以的,但是下面的自定义扩展名又只能在这,所以就参考官网吧。
然后再nacos控制台新建配置
内容就跟官网一样啦
我们在启动类测试下
@SpringBootApplication
public class OrderApplication {
public static void main( String[] args ) throws InterruptedException {
ConfigurableApplicationContext applicationContext = SpringApplication.run(OrderApplication.class, args);
while(true) {
//当动态配置刷新时,会更新到 Enviroment中,因此这里每隔一秒中从Enviroment中获取配置
String userName = applicationContext.getEnvironment().getProperty("user.name");
String userAge = applicationContext.getEnvironment().getProperty("user.age");
TimeUnit.SECONDS.sleep(1);
}
}
}
正常定时打印了user.name和user.age,在nacos控制台实时修改,项目里面也会实时变化,牛逼
3、修改扩展名
上面都是用默认的扩展名properties,并且用DataId也是用默认的跟应用的name一样的,如果要修改扩展名修改为yaml,如何,也很简单,只需要加上配置
spring.cloud.nacos.config.file-extension=yaml
然后nacos控制台新建配置nacos-config.yaml就可以啦。
4、自定义DataId
这个也很简单,直接配置加上
# 配置支持共享的 Data Id
spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml
# 配置 Data Id 所在分组,缺省默认 DEFAULT_GROUP
spring.cloud.nacos.config.shared-configs[0].group=DEFAULT_GROUP
# 配置Data Id 在配置变更时,是否动态刷新,缺省默认 false
spring.cloud.nacos.config.shared-configs[0].refresh=true
然后nacos控制台新增common.yaml即可
上面官网其实都有
5、使用@Value注解
也很简单,直接加上注解即可
@Value("${redis}")
private String redis;
但是我们发现不能实时更新,其实也很简单,在类上加上注解
...
@RefreshScope
public class OrderController {
...
就好啦!
使用还是很简单的,毕竟官网都有!