1、项目案例
@NacosValue(value = "${order.url}", autoRefreshed = true)
private String orderUrl;
2、用法介绍
- 在SpringCloud工程中,可以使用@RefreshScope+@Value实现配置文件内容变更后的动态刷新。
- 在SpringBoot工程中,可以使用@NacosValue来实现配置文件内容变更后的动态刷新。
@NacosValue的使用
引入依赖:
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.12</version>
</dependency>
配置文件增加配置:
nacos:
config:
server-addr: 127.0.0.1:8848 //配置nacos配置中心的服务地址
bootstrap:
enable: true
log:
enable: true
data-id: order-service
type: yaml
auto-refresh: true # 开启自动刷新
@NacosValue的例子:
package com.morris.order.controller;
import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("order")
public class NacosValueController {
@NacosValue(value = "${user.age}", autoRefreshed = true)
private Integer age2;
@GetMapping("age2")
public Integer getAge2() {
return age2;
}
}
注意在SpringCloud项目中不能使用@NacosValue注解,虽然这个注解存在,但是其源码的实现不存在。
3、案例详情
可以发现我们已经成功去到了配置中心里面的值,到此自动刷新配置已完成。