spring cloud nacos配置拉取
在Spring Cloud中使用Nacos作为配置中心时,可以通过@RefreshScope
注解来实现配置的自动更新。以下是一个简单的例子:
- 首先,在
pom.xml
中添加Spring Cloud Nacos Config的依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- 在
application.properties
或application.yml
中配置Nacos服务器地址和应用名:
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=my-application
- 在需要配置自动刷新的类上添加
@RefreshScope
注解:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RefreshScope
public class ConfigController {
@Value("${my.config}")
private String myConfig;
@GetMapping("/config")
public String getConfig() {
return myConfig;
}
}
- 当你在Nacos控制台修改配置后,可以调用
/actuator/refresh
端点来通知配置更新:
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class RefreshController {
@PostMapping("/actuator/refresh")
public String refreshConfig() {
return "Configuration refreshed.";
}
}
你可以通过访问/actuator/refresh
端点或者直接在Nacos控制台上点击“发布”按钮来触发配置的更新。
注意:Spring Boot 2.0及以上版本中,/actuator/refresh
端点默认是关闭的,你需要在application.properties
或application.yml
中开启它:
management.endpoints.web.exposure.include=refresh
或者如果你使用的是Spring Boot 1.x版本,则可以通过添加@RefreshScope
注解来开启配置的自动刷新。
评论已关闭