springboot專欄 | ||
---|---|---|
上一篇 | 主目錄 | 下一篇 |
【前言】
1 nacos
2 遷移步驟
springboot原項目配置文件改造Nacos配置中心來管理:
第一步:pom文件新增
dependencies標籤下新增
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>0.2.1.RELEASE</version>
</dependency>
build標籤下新增
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
對應profiles->profile->properties下新增
<serverAddr>192.168.XXX.XX:XXXX</serverAddr>#nacos的地址和端口
<namespace>命名空間id</namespace>
第二步:resources目錄下新建bootstrap.yml
spring:
application:
name: 項目名
cloud:
nacos:
config:
server-addr: '@serverAddr@'
prefix: ${spring.application.name}
file-extension: yml
namespace: '@namespace@'
第三步:新建NacosConfig配置類配置相關Nacos信息
@Slf4j
@Component
//@RefreshScope
public class NacosConfig {
@Value("${nacos.config.serverAddr}")
private String serverAddr;
@Value("${nacos.config.namespace}")
private String namespace;
@Value("${nacos.config.dataId}")
private String dataId;
@Value("${nacos.config.group}")
private String group;
@Bean
public ConfigService build() {
ConfigService configService = null;
try {
Properties properties = new Properties();
properties.put("serverAddr", serverAddr);
properties.put("namespace", namespace);
configService = ConfigFactory.createConfigService(properties);
configService.getConfig(dataId, group, 3000);
configService.addListener(dataId, group, new Listener() {
@Override
public void receiveConfigInfo(String configInfo) {
log.info("createTime:"+new Date()+",configInfo:\n"+configInfo);
}
@Override
public Executor getExecutor() {
return null;
}
});
} catch (Exception e) {
e.printStackTrace();
}
return configService;
}
}
- 注意:在需要實時更新@Value屬性的class加上
@RefreshScope
註解
第五步:Nocas配置項目名.yml
文件
文件內容就是本地不同環境的配置信息,線上文件就是替換本地配置文件。本地的配置可以刪除掉,當本地和nacos都有某一配置項時,優先使用nacos的配置,nacos沒有時使用本地的配置項
- 注:在
項目名.yml
文件中加上(配置類中獲取這裏的值)
nacos:
config:
serverAddr: nacos服務器地址和端口
namespace: 命名空間id
dataId: 項目名.yml
group: DEFAULT_GROUP