Nacos不仅可以作为服务注册与发现中心,还可以作为分布式配置中心,相当于一次性地替代了Spring Cloud Config
+git配置
。
在wendev-consumer
中更改application.yml文件,添加一个节点:
value: 1
与使用Spring Cloud Config
类似,因为要从Nacos
中拉取配置,所以需要创建一个bootstrap.yml。:
spring:
application:
name: wendev-provider
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
file-extension: yml
更改HelloServiceImpl.java,将这个节点的值注入到变量中,并在返回值中使用它:
@Service
@RefreshScope
public class HelloServiceImpl implements HelloService {
@Value("${server.port}")
private String port;
@Value("${value:0}")
private String value;
@Override
public String hello(String message) {
return String.format("Welcome to WenDev, your message is %s, from the port %s. From Dubbo."
+ "The value is: %s",
message, port, value);
}
}
使用@RefreshScope
可以从配置中心自动拉取配置。
启动项目,访问http://127.0.0.1:8730
,可以看到value
的值是1,我们在application.yml中配置的一样:

接下来我们在Nacos
中新建配置(忘了截图了,就用了编辑配置界面的图):

点击发布,可以在输出中看到配置更新:

刷新,可以发现输出也同步更新了:

网友评论