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