<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.1</version>
</dependency>
配置文件中添加配置
#nacos配置中心
nacos.config.server-addr=119.22.91.21:8848
直接注入的方式
然后在启动类上添加注解
@NacosPropertySources(value = {
@NacosPropertySource(dataId = "consumer-server",autoRefreshed = true),
@NacosPropertySource(dataId = "provider-dubbo",autoRefreshed = true),
@NacosPropertySource(dataId = "email",autoRefreshed = true),
@NacosPropertySource(dataId = "system",autoRefreshed = true),
})
然后在需要注入参数的地方直接如此注入参数即可;
@NacosValue(value = "${server.port}",autoRefreshed = true)
private String port;
将配置文件添加为pojo的注入
配置样例
port=huatian@163.com
host=1467
key=aoiZ9812LA82*l1
useAuth=true
user=huatian@163.com
from=huatian@163.com
@NacosConfigurationProperties
注解
@Data
@Configuration
@NacosConfigurationProperties(dataId = "email",autoRefreshed = true)
public class EmailConfig {
private String port;
private String host;
private String key;
private boolean useAuth;
private String user;
private String from;
// 这种配置只能说是创建一个单例bean,实际上云端即使更新了这里也不会更新,真正起效的只能是多例了
@Bean(name = "emailConf")
public EmailConf getConf(){
return BeanUtil.copyProperties(this,EmailConf.class);
}
// 如此每次拿到的就是新生成的,当然你把this直接返回也可以
public EmailConf getConfs(){
return BeanUtil.copyProperties(this,EmailConf.class);
}
}
通过 curl http请求动态更新配置
通过调用 Nacos Open API 向 Nacos server 发布配置:dataId 为example,内容为useLocalCache=true
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example&group=DEFAULT_GROUP&content=useLocalCache=true"
睡觉了!