关于成功在springboot的工具类中读取application.yml中自定义配置的问题

事件:

由于在application-local.yml中定义了一个自定义的配置,需要在工具类中读取到这个值,但是在网上找了很多的文章,也都尝试了,最终无果,好在功夫不负有心人,在不断的试错过程中,终于获取到了,这个过程大概花了至少3个小时,差点崩溃。

我这里列一下写的比较好,但我依旧获取不到配置的文章
1、springboot读取application.yml自定义属性

2、在utils类中获取配置文件application.properties中的属性

3、SpringBoot项目中如何在静态工具类中调用到配置文件application.properties(yml)

4、SpringBoot(三)工具类中读取配置文件

其他的方法和这几个也是大同小异,我就不一一列出了,最后的结论就是没有一个能获取到的,最后在绝望中继续前进,尝试了这篇文章:

SpringBoot工具类获取yml配置文件内容

终于,可以在工具类中打印出配置的取值了,太开森了。

总结,Util工具类中即便加了@Component注解,依旧不解风情,获取不到,原因我还不知道,欢迎大神留言指教。

在工具类中的方法都是静态的,所以最终获取的方法里面也要写成静态方法。

由于配置只需要最开始启动的时候调用,所以我把这个配置值写成了全局变量,获取配置的方法调用放在static静态代码块中,这样就只需要获取一次。

谨以记录!


2020-7-30日更新此博客

前面的第一种方法中有添加@Value注解可以直接获取到的原因是直接启动整个项目,而不是只启动工具类,只启动工具类的话application-local.yml必然不在spring容器中,容器无法管理配置,注解就无法生效,所以启动整个springboot项目,加上注解才是生效的。所以前车之鉴,万望各位仙家引以为戒。要启动整个项目,工具类才能被sping容器管理,前提是工具类的上面加上@Component注解。
不过我最后找到的办法也算是一种学习了。

### 回答1: Spring Boot 是一个基于 Spring 框架的开发工具,它使用注解和约定优于配置的原则来简化 Spring 应用的开发。在 Spring Boot ,将应用程序的配置信息存储在 application.yml 文件,以便进行统一的管理。 Spring Boot 是通过使用@ConfigurationProperties注解来加载 application.yml 文件的。首先,我们需要在应用程序的配置类上添加该注解,并使用 @PropertySource 指定要加载的配置文件的位置。然后,通过在属性上使用相应的注解(如 @Value、@ConfigurationProperties)来将属性与配置文件的值进行绑定。 在加载配置文件时,Spring Boot 将自动根据属性的名称从 application.yml 文件查找对应的值,并将其注入到应用程序。 除了 application.yml 文件,Spring Boot 还支持加载其他格式的配置文件,如 application.properties。可以根据具体的需求选择适合的配置文件格式。 通过将应用程序的配置信息集保存在 application.yml 文件,可以方便地管理和修改配置。而且,Spring Boot 还提供了一些内置的功能和注解,可以方便地对配置进行校验和自动完成。 总之,Spring Boot 通过@ConfigurationProperties注解和相关的注解来加载 application.yml 文件,将应用程序的配置信息集管理,简化了开发过程。它提供了方便的配置方式,使得配置的修改和管理更加灵活和高效。 ### 回答2: Spring Boot 是一个基于 Spring 框架的开源Java开发框架,通过自动化配置和约定式编程,大大简化了传统 Spring 应用的开发过程。 在 Spring Boot application.yml 是用来存放应用的配置信息的文件。Spring Boot 在启动时会自动加载 application.yml 文件,并读取配置信息,然后根据这些配置信息来完成相应的配置操作。 为了加载 application.yml 文件,Spring Boot 遵循了一定的加载顺序。首先,它会在 classpath 下找到所有的 application.yml 文件,然后按照一定的优先级进行加载。具体加载顺序如下: 1. 当前项目的 classpath 下的根路径(即 src/main/resources/)下的 application.yml。 2. 当前项目的 classpath 下的 config 目录下的 application.yml。 3. 当前项目 jar 包外部的 config 目录下的 application.yml。 4. 当前项目 jar 包内部的 config 目录下的 application.yml。 在加载这些 application.yml 文件时,Spring Boot 会根据默认的配置规则进行解析。通常,我们可以在 application.yml 使用一些特定的前缀来标识不同的配置项,比如 spring、server 等,这样 Spring Boot 就会根据这些前缀来将配置的值绑定到相应的对象。这个过程称为自动配置。 除了 application.yml,Spring Boot 还支持其他的配置文件格式,如 application.properties、application.yaml 等。它们的加载方式和 application.yml 类似,只是文件格式不同而已。 总之,Spring Boot 可以通过加载 application.yml读取应用的配置信息,并根据这些配置信息完成对应的配置操作,从而简化了开发过程。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值