启动spring项目时无法加载nacos配置中心的配置

背景:本地有bootstrap.properties,内容如下

image-20241113203422927

在nacos配置中心有如下配置:

image-20241113203625505

测试代码如下:

	@Value("${coupon.user.name}")
    private String userName;
    @Value("${coupon.user.age}")
    private String userAge;
    @RequestMapping("test")
    public R test(){
        return R.ok().put("name",userName).put("age",userAge);
    }

无法运行的原因:spring无法读取bootstrap.properties文件,在spring cloud 2020.0.x版本及其以后的版本默认不读取bootstrap配置文件,而bootstrap配置文件影响Spring应用初始化属性。

解决方法:

在pom.xml文件中添加如下依赖:

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-bootstrap</artifactId>
	<version>3.1.0</version>
</dependency>

启动测试类

image-20241113210918682

运行成功


有小伙伴可能会问,既然spring cloud在2020.0.x版本以后都不再默认读取bootstrap配置文件,那我将配置信息放在application.properties中行不行?反正他们看起来都差不多

答案是不行

这是我之前的的做法,将配置信息放在application.properties文件

image-20241113204541822

结果是无法读取。

我们这样理解,bootstrap.properties用于初始化创建spring本身。而application.properties用于spring创建完毕后再额外读取的其他信息,比如数据库。

更多推荐