java—使用spring属性加载而不初始化spring上下文

ymzxtsji  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(440)

我喜欢Spring加载机构。您可以定义多个配置文件并用其他配置文件覆盖或扩展属性,您可以使用不同的文件类型(.properties,xml,json,…)来存储您的属性,您可以使用其他属性的值来解析它自己的值aso。
但是要使用这些属性,必须以某种方式初始化spring上下文(@springbootapplication或@springboottest)。我想在一些库中使用这个属性加载机制,在这些库中我不能保证上下文被加载(我不想加载它)。
所以,我的问题是:
我是否可以创建一个类,使用spring库以spring加载其属性的方式加载属性(按需)?其他类将使用这个类来访问属性。不需要加载注解。
我已经找了一段时间了,但还没有找到解决办法。
如果是的话就太好了。知道解决办法。
问候,保持健康,圣诞快乐!

nqwrtyyt

nqwrtyyt1#

属性查找机制由接口定义 PropertyResolver ,按接口扩展 Environment 支持配置文件,通过接口进一步扩展 ConfigurableEnvironment 支持 PropertySources ,即通过搜索一组属性源来查找属性的概念。
例如通过类实现 StandardEnvironment ,定义属性源:
系统属性
系统环境变量
以上都是 Package 的一部分 org.springframework.core.env ,即 spring-core-XXX.jar 文件。
支持 application.properties 文件是按类添加的 ConfigFileApplicationListener Package 内 org.springframework.boot.context.config .
类需要的示例 SpringApplication Package 内 org.springframework.boot .
他们是世界的一部分 spring-boot-XXX.jar 文件。
因此,获得基本的spring属性支持很容易,只需创建一个 StandardEnvironment 对象。
得到 application.properties 加载的文件深深地嵌入到spring引导代码中,如果不初始化spring上下文,就很难做到这一点。

相关问题