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