如何从XML配置文件设置Spring属性?

ton*_*oft 6 xml configuration spring

我有一些使用属性的spring配置,如下所示:

<bean id="foo" class="...">
    <constructor-arg value="${aProperty}"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

显然,我知道可以通过拥有属性文件(例如example.properties)来解析此属性:

aProperty=value
Run Code Online (Sandbox Code Playgroud)

并在Spring配置中导入此文件:

<bean id="propertyConfiguration" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>example.properties</value>
        </list>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否可以直接在XML文件中设置此属性,而不必创建单独的属性文件?这样的事情将是理想的:

<set-property name="aProperty" value="value"/>
Run Code Online (Sandbox Code Playgroud)

Maven对于pom文件具有类似的功能:

<properties><aProperty>value</aProperty></properies>
Run Code Online (Sandbox Code Playgroud)

elt*_*abo 8

使用属性文件的目的是将值与Spring配置文件解耦,因此在同一配置文件中定义属性有点怪异。不过,您始终可以将属性添加到PropertyPlaceholderConfigurer中:

<bean id="propertyConfiguration" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>example.properties</value>
        </list>
    </property>
    <property name="properties">
        <props>
            <prop key="aa">bb</prop>
            <prop key="cc">dd</prop>
        </props>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。