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

 更新时间:2024年05月09日 10:31:11   作者:lpxlpx  
这篇文章主要介绍了SpringBoot中的application.properties无法加载问题定位技巧,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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<Annotation>[@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

解决方案

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

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

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

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

@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 {
}

总结

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

相关文章

  • MyBatis结果映射(ResultMap)的使用

    MyBatis结果映射(ResultMap)的使用

    在MyBatis中,结果映射是实现数据库结果集到Java对象映射的核心,它不仅支持简单的字段映射,还能处理字段名不一致、嵌套对象和集合映射等复杂场景,通过ResultMap,开发者可以灵活定义映射关系,以适应各种需求,感兴趣的可以了解一下
    2024-09-09
  • 浅析java快速排序算法

    浅析java快速排序算法

    这篇文章主要介绍了浅析java快速排序算法,需要的朋友可以参考下
    2015-02-02
  • 关于Mybatis的@param注解及多个传参

    关于Mybatis的@param注解及多个传参

    这篇文章主要介绍了关于Mybatis的@param注解及多个传参,@Param的作用就是给参数命名,比如在mapper里面某方法A(int id),当添加注解后A(@Param(“userId”) int id),也就是说外部想要取出传入的id值,只需要取它的参数名userId就可以了,需要的朋友可以参考下
    2023-05-05
  • Java异常简介和架构_动力节点Java学院整理

    Java异常简介和架构_动力节点Java学院整理

    这篇文章主要分享了Java异常简介和架构,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Java面试题冲刺第十三天--数据库(3)

    Java面试题冲刺第十三天--数据库(3)

    这篇文章主要为大家分享了最有价值的三道数据库面试题,涵盖内容全面,包括数据结构和算法相关的题目、经典面试编程题等,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Java中URL的处理方法详解

    Java中URL的处理方法详解

    URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址,表示为互联网上的资源,本文主要为大家介绍了Java是如何处理URL的,感兴趣的可以了解一下
    2023-05-05
  • java动态线程池的简单实现思路

    java动态线程池的简单实现思路

    本文主要介绍了java 动态线程池的简单实现思路,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • SpringBoot整合activemq的案例代码

    SpringBoot整合activemq的案例代码

    ActiveMQ是消息队列技术,为解决高并发问题而生,本文通过案例代码给大家介绍pringBoot整合activemq的详细过程,感兴趣的朋友跟随小编一起看看吧
    2022-02-02
  • Springboot访问html页面的教程详解

    Springboot访问html页面的教程详解

    这篇文章主要介绍了Springboot访问html页面的教程,本文图文并茂给大家介绍的非常详细,需要的朋友可以参考下
    2018-03-03
  • 超级详细的Java安装教程(Mac版)

    超级详细的Java安装教程(Mac版)

    Java是一种广泛使用的编程语言,可用于开发各种类型的应用程序,这篇文章主要给大家介绍了关于Mac系统下Java安装的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10

最新评论