Spring JavaConfig for java.util.Properties field
2022-09-03 06:23:15
你能告诉我如何使用Spring Javaconfig直接加载/自动将属性文件加载/自动连接到java.util.Properties字段吗?
谢谢!
稍后编辑 - 仍在搜索答案:是否可以使用Spring JavaConfig将属性文件直接加载到java.util.Properties字段中?
你能告诉我如何使用Spring Javaconfig直接加载/自动将属性文件加载/自动连接到java.util.Properties字段吗?
谢谢!
稍后编辑 - 仍在搜索答案:是否可以使用Spring JavaConfig将属性文件直接加载到java.util.Properties字段中?
XML 基本方式:
在弹簧配置中:
<util:properties id="myProperties" location="classpath:com/foo/my-production.properties"/>
在你的班级中:
@Autowired
@Qualifier("myProperties")
private Properties myProperties;
仅 JavaConfig
看起来有一个注释:
@PropertySource("classpath:com/foo/my-production.properties")
使用 this 对类进行批注会将属性从文件加载到环境中。然后,必须将环境自动连接到类中以获取属性。
@Configuration
@PropertySource("classpath:com/foo/my-production.properties")
public class AppConfig {
@Autowired
private Environment env;
public void someMethod() {
String prop = env.getProperty("my.prop.name");
...
}
我没有看到将它们直接注入Java.util.properties的方法。但是,您可以创建一个类,该类使用此用作包装器的注释,并以这种方式生成属性。
声明一个 .PropertiesFactoryBean
@Bean
public PropertiesFactoryBean mailProperties() {
PropertiesFactoryBean bean = new PropertiesFactoryBean();
bean.setLocation(new ClassPathResource("mail.properties"));
return bean;
}
遗留代码具有以下配置
<bean id="mailConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="classpath:mail.properties"/>
</bean>
如上所示,将其转换为Java配置非常容易。