第一步:
启动Nacos Server,然后进入nacos管理页面
http://192.168.85.1:8848/nacos/index.html
(注意:这个地址改成你自己的)
第二步:
特别注意:比如你的auth-service服务需要用配置中心的配置,那么这个Data ID的名字就应该是auth-service.properties,不然是找不到对应配置的。
第三步:
在你需要使用配置的服务模块的pom中添加
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
然后,新建一个bootstrap.properties文件
spring:
application:
name: auth-service
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
注意spring.applicaiton.name必须与data id 一致
之后,你可以在原有的application.yml(properties)中添加其他配置。
如何获得配置内容
1、在Controller中或Service中使用@Value注解获取配置
例子:
@Value("${test1}")
private String test;
@GetMapping("verifyPermission")
public AuthVerifyResult verifyPermission(String token, String method, String path){
System.out.println("test:"+test);
return authService.verifyPermission(token,method,path);
}
2、在启动类上获取配置
例子:
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = SpringApplication.run(AuthServiceApplication.class, args);
String test = applicationContext.getEnvironment().getProperty("test1");
System.out.println(test);
}
如何动态获取配置
方法1:若是用@Value注解,只需要在调用的类上加@RefreshScope注解
方法2:在启动类上
@SpringBootApplication
public class ProviderApplication {
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = SpringApplication.run(ProviderApplication.class, args);
while(true) {
//当动态配置刷新时,会更新到 Enviroment中,因此这里每隔一秒中从Enviroment中获取配置
String userName = applicationContext.getEnvironment().getProperty("user.name");
String userAge = applicationContext.getEnvironment().getProperty("user.age");
System.err.println("user name :" + userName + "; age: " + userAge);
TimeUnit.SECONDS.sleep(1);
}
}
}
版权声明:本文为yueping0718原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。