集成
添加maven依赖
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-spring-context</artifactId>
<version>1.1.0</version>
</dependency>
nacos配置
nacos.server-addr=www.nacos.org:80
nacos.namespace=dev
java config
@Configuration
@EnableNacosConfig
@NacosPropertySource(dataId = "app_config.properties", autoRefreshed = true)
@Slf4j
public class NacosConfig {
@NacosInjected
ConfigService configService;
@NacosConfigListener(dataId = "app_config.properties", type = ConfigType.PROPERTIES)
public void listener(Properties properties) {
}
}
注入配置的方式
1.@Value注解
nacos-spring-context对spring @Value提供了注入支持,启动时会通过NacosPropertySourcePostProcessor把Properties加载入容器中,
但是这里有个坑,@Value默认不支持自动刷新,自动刷新需要spring-cloud的@RefreshScope配合
2.@NacosValue
支持单个配置刷新,主要实现类NacosValueAnnotationBeanPostProcessor,通过NacosConfigReceivedEvent事件触发刷新
3.@NacosConfigurationProperties
支持把配置文件绑定到POJO上,支持自动刷新
4.@NacosConfigListener
对于复杂的场景可以使用Listener定制化修改逻辑