是否可以在spring上下文文件中定义,以及一个或多个属性 可以在< bean>中访问元素。
下面的例子说明了我最需要的东西 - 我想要定义属性FOO一次,然后在我的各种< bean>中多次引用它。定义:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<properties>
<property name="FOO" value="BAR">
</properties>
<bean name="TEST" class="mytest">
<property name="MYFOO" value="${FOO}"/>
</bean>
<bean name="TEST1" class="mytest1">
<property name="MYFOO" value="${FOO}"/>
</bean>
</beans>
非常感谢任何意见 谢谢,凯文。
答案 0 :(得分:9)
您可以使用快照命名的PropertyPlaceHolderConfigurer
来执行此操作。有关spring文档中的示例,请参阅here。您没有在spring beans文件中定义属性值本身,而是将它们外部化为.properties文件。
我怀疑,您可以使用PropertyPlaceHolderConfigurer
或其中一个兄弟来注入Spring文件中定义的Properties
对象,但这将是一个相当冗长的解决方案。
答案 1 :(得分:4)
如果您只需要在xml文件中定义它们并且永远不会更改它们(就像您要更改配置选项,比如端口或ip),您可以使用给定属性创建类String的bean然后写入。创建类String的bean不是最直接的东西,但它是可行的。
如果你想要更复杂的东西(比如你想要一个配置文件驻留在你的bean定义的xml的jar之外),你可以查看PropertyPlaceholderConfigurer类。
答案 2 :(得分:3)
刚刚找到了一种在spring XML文件中执行此操作的方法,不需要外部属性文件(如果需要,可以补充一个)
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="properties">
<util:properties>
<prop key="foo1">bar1</prop>
<prop key="foo2">bar2</prop>
</util:properties>
</property>
</bean>
然后你就像正常那样引用它们,${foo1}
需要