需求是这样的:我们维护一个比较老的SpringBoot项目,由于子工程比较多,项目比较大,无法对SpringBoot进行升级维护,但是想把项目的配置文件迁移到nacos上,以后就不用在发布前修改配置文件了,一开始就是按照常规做法:
1.引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${nacos.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${nacos.version}</version>
</dependency>
2.新建bootstrap.yml
spring:
application:
name: xxx
cloud:
nacos:
discovery:
# 服务注册中心
server-addr: ${NACOS_ADDR} #服务器地址
config:
server-addr: ${NACOS_ADDR}
prefix: xxx
file-extension: properties
3.在nacos中新建对应的xxx.properties配置文件
到这里一般的项目启动起来就正常读取到nacos上的配置文件了,但是 但是 但是有一些项目这样做了以后会出问题,无法读取到配置文件,而且各种调整也不能成功,这个时候我们要回归本源,查看nacos的官网,别再看网上的文章和帖子了。
![](https://i-blog.csdnimg.cn/blog_migrate/00ca2a267b93f52550865aa4b8324ad3.png)
跟着快速开始,对照自己的项目一步一步来,下面就是我配置的过程,供参考。
首先引入依赖
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.4</version>
</dependency>
其次启动类增加@NacosPropertySource注解
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@NacosPropertySource(dataId = ".yml", autoRefreshed = true)
public class SamplesApplication {
public static void main(String[] args) {
SpringApplication.run(SamplesApplication.class, args);
}
}