1.引入Nacos作为配置中心的相关依赖
在 webshop-common 项目的 pom.xml 文件下,导入Nacos作为配置中心的相关依赖
<!--nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.添加bootstrap.properties文件,配置Nacos Config元数据
#服务名
spring.application.name=webshop-order
#nacos服务地址
spring.cloud.nacos.config.server-addr=120.48.96.228:8848
3.开启动态刷新功能
如果没有使用配置中心的话,一旦服务配置有更改就会需要重新启动,那当服务都去配置中心拿相应配置信息时,就需要开启动态刷新这个功能来感知配置中心内容的变化,从而作出改变。
这里使用@RefreshScope开启动态刷新功能,在使用到配置的类上添加该注解,如OrderController:
@RestController
@RequestMapping("order/order")
@RefreshScope
public class OrderController {
//...
}
4.在Nacos Server上添加配置
- 登录Nacos Server,点击配置列表,选择添加配置(加号,新建配置)
- 输入配置信息,Data ID默认一般都是:应用名.properties 如:webshop-order.properties
order.user.name=zhangsan
order.user.age=23
5.动态展示配置中心的值
- 在controller类,写一个接口,通过@Value取得配置文件的值,展示给前端
@RestController
@RequestMapping("order/order")
@RefreshScope
public class OrderController {
@Autowired
private OrderService orderService;
@Value("${order.user.name}")
private String name;
@Value("${order.user.age}")
private Integer age;
@RequestMapping("/test")
public R test() {
return R.ok().put("name: ", name).put("age: ", age);
}
//...
}
-
启动 webshop-order 服务,访问:http://localhost:9000/order/order/test
显示配置服务Config Server 中的数据;
说明是可以成功取到配置中心值的,这里要注意,配置中心上的配置文件一定要先创建好,然后再启动服务,否则本地项目没有配置相应的属性,@Value又要去取,那启动就会报错。 -
修改Nacos中的配置文件中的值
-
不重启服务,直接刷新页面:可以发现属性值已经发生变化了;
-
引入Nacos作为配置中心,统一维护各服务的配置信息,修改后动态刷新,避免了反复重启服务对业务造成影响,同时也更易于维护。