springboot原項目配置文件如何遷移至nacos

springboot專欄
上一篇 主目錄 下一篇

【前言】


1 nacos

什麼是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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章