如何配置Spring bean容器来加载Java属性文件?
如何配置Spring bean容器(或应用程序上下文)来加载Java属性文件?
JavaWorld文章Smartly Load Your Properties说明了如何使用标准Java库中的以下资源处理方法之一从类路径加载属性文件:
ClassLoader.getResourceAsStream ("some/pkg/resource.properties"); Class.getResourceAsStream ("/some/pkg/resource.properties"); ResourceBundle.getBundle ("some.pkg.resource");
你如何使用Spring bean容器做同样的事情?
Spring Framework Reference Documentation(2.5.x)提供了两个如何将属性文件加载到bean容器中的示例,一个在版本2.5发布之前,另一个使用在
函数中引入的简洁方法。版本2.5:
2.5版之前:
版本2.5之后:
请注意,为了使用
,您必须在Spring XML配置文件顶部的前导码中声明util
命名空间和架构位置:
您的beans.xml
文件应该有一个PropertyPlaceholderConfigurer
:
classpath:some/pkg/resource.properties
value
然后,您可以在beans.xml
其他位置引用这些属性:
....
有关此内容的文章,请查看http://almaer.com/blog/spring-propertyplaceholderconfigurer-a-nice-clean-way-to-share
例如,通过PropertiesFactoryBean 。 使用PropertyPlaceholderConfigurer通过属性在上下文中配置bean。
您将在其他答案中找到PropertyPlaceholderConfigurer示例。 这是一个PropertiesFactoryBean示例:
有一个名为PropertyPlaceholderConfigurer的东西,您可以使用它向您的bean注入属性文件中的值,如下所示:
classpath:com/foo/jdbc.properties
我们用这个:
classpath:test.properties
这允许在那里定义的属性用作配置文件中的引用
有关详情,请参阅:
如果要将对象作为java.util.Properties
的实例引用,则应执行以下操作:
true classpath:property-file.properties
这允许您将Spring bean properties
引用为java.util.Properties
的实例。 您甚至可以通过向location
添加更多值将其合并到多个属性文件中。 有关Spring将接受的位置值的类型的信息,请参阅资源字符串的此描述。 如果您想在Spring XML中使用${}
样式替换,您可以看到有许多其他答案描述了如何执行此操作。