nacos 可以作为服务注册发现中心,也可以作为配置中心,作为配置中心的时候,系统的配置可以做到自动刷新,即当配置服务器的数据发生更改时,客户端的配置会进行自动的更新。
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
这个是文件是启用nacos作为配置中心的文件。
图标有朵云,表示启用nacos 作为配置中心。
//配置nacos作为配置服务器
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
//配置模式为开发模式
spring.profiles.active=dev
//nacos配资使用yml 作为扩展名
spring.cloud.nacos.config.file-extension=yml
//下面的配置时公共配置,即可以在不同应用之间进行共享。
spring.cloud.nacos.config.shared-dataids=common.yml
spring.cloud.nacos.config.refreshable-dataids=common.yml
springcloud 是使用配置优先的。
比如我现在有一个应用为:
jpaas-form
系统会按照如下的配置进行查找
1.先找 jpaas-form-dev.yml,如果找到了则返回,如果找不到则进行下一步。
2.查找 jpaas-form.yml 如果找不到,则查找共享的配置,根据上面的配置他会查找common.yml
这里配置格式,可以是 yaml 或者 properties
@RefreshScope public class SysSeqIdController extends BaseController<SysSeqId> { @Value( value = "${user.name}") private String username=""; @Value( value = "${sys.name}" ) private String uploaddir=""; @Autowired private User user;
@RefreshScope 是实现自动刷新配置。
user.name,sys.name 是配置的参数
可以使用 yml 的格式进行配置。
我们还可以配置对象的方式进行参数进行注入,使用相当方便。
比如:
user:
name: ray
address: guangzhou
编写用户代码如下:
@Data @Component @ConfigurationProperties(prefix = "user") public class User { private String name=""; private String address=""; }
这样 数据就会自动配置好用户对象,使用下面的代码进行注入。
@Autowired private User user;
同样,这个对象在配置中心修改后也能进行自动刷新。
原文:https://www.cnblogs.com/yg_zhang/p/12635106.html