集成
添加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定制化修改邏輯