我喜欢Spring属性加载机制。您可以定义多个概要文件并使用其他配置文件覆盖或扩展属性,可以使用不同的文件类型(.properties、XML、JSON、.)要存储属性,可以使用其他属性的值来解析其自身的值,麻生。
但是要使用这些属性,您必须以某种方式初始化SpringBootTest (@SpringBootApplication或@SpringBootTest)。我想在某些库中使用这个属性加载机制,在这些库中,我不能保证加载了上下文(而且我不想加载它)。
所以,我的问题是:
我是否可以创建一个类,它使用Spring库加载属性(按需加载),就像Spring加载其属性一样?然后,其他类将使用这个类来访问属性。不需要加载注释。
我寻找这个已经有一段时间了,但我还没有找到解决办法。
如果是这样就太好了。知道解决办法。
你好,保持健康和快乐的X-妈妈!
发布于 2020-12-23 12:54:50
属性查找机制由接口PropertyResolver定义,由接口Environment扩展以支持配置文件,通过接口ConfigurableEnvironment进一步扩展以支持PropertySources,即通过一组属性源搜索来查找属性。
它是通过类StandardEnvironment实现的,该类定义了以下属性源:
properties
所有这些都是包org.springframework.core.env的一部分,也就是spring-core-XXX.jar文件的一部分。
对application.properties文件的支持是由包org.springframework.boot.context.config中的ConfigFileApplicationListener类添加的。
该类需要包org.springframework.boot中的一个org.springframework.boot实例。
它们是spring-boot-XXX.jar文件的一部分。
因此,获得基本Spring属性支持很容易,只需创建一个StandardEnvironment对象即可。
加载application.properties文件是在Spring代码中嵌入的,如果不初始化Spring上下文,就很难做到。
https://stackoverflow.com/questions/65424015
复制相似问题