springboot中的application.properties无法加载问题定位技巧-kb88凯时官网登录

来自:网络
时间:2024-06-09
阅读:

springboot application.properties无法加载

项目场景

springboot 早上启动发现配置无法加载

问题描述

在使用springboot的时候,发现配置总是无法加载,启动又不报错

原因分析

其实可以通过一个一些技巧来定位问题

在使用@configurationproperties的时候,其实里面是有些附加属性可以设置,其中一个就是ignoreunknownfields 这个属性设置为false,当配置了非法属性的时候,spring boot就会启动失败

//只有这个组件是容器中的组件,才能使用容器提供的@configurationproperties功能
//@configurationproperties告诉springboot将本类中的所有属性和配置文件中相关的配置进行绑定
//prefix表示与配置文件中哪个下面的所有属性进行映射
@component
//prefix里面的配置只能小写
@configurationproperties(prefix ="userpo", ignoreunknownfields = false)
public class userpo {
}

显示报错如下,例如我的例子,我配置的时候删除了字段的get和set方法,导致无法注入,可以通过恢复get和set方法的方式来解决问题

description:
 
binding to target [bindable@6815c5f2 type = com.lpx.study.testmaven.config.userpo, value = 'provided', annotations = array[@org.springframework.boot.context.properties.configurationproperties(ignoreinvalidfields=false, ignoreunknownfields=false, prefix=userpo, value=userpo)]] failed:
 
    property: userpo.son.name1
    value: wangwu
    origin: class path resource [application.properties]:4:18
    reason: the elements [userpo.son.name1] were left unbound.
 
action:
 
update your application's configuration

kb88凯时官网登录的解决方案

通过增加get 和set 方法接解决此问题

springboot自定义application.properties配置文件名称

将springboot项目的properties文件改为自定义名称

更改名称后的properties文件仍然放置在resource下

springboot中的application.properties无法加载问题定位技巧

@springbootapplication
public class demospringbootapplication {
   public static void main(string[] args) {
       new springapplicationbuilder(demoapplication.class)
               .properties("spring.config.name:a_demo")
               .build()
               .run(args);
   }
}

后来我又学了个新的方法,不用启动类,可以写个配置类,这个方法更好

@configuration
@propertysource("classpath:a_demo.properties")
@mapperscan(basepackages = "xxx.mapper")
public class coreconfig {
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

返回顶部
顶部
网站地图