如何使用PropertyPlaceholderConfigurer使用自定义xml文件将变量加载到我的spring.xml?

时间:2015-07-22 20:16:38

标签: java xml spring spring-bean

我正在尝试使用自定义xml作为我的属性文件,因此我可以在spring.xml文件中定义一些变量。

我搜索了类似的问题,但xml文件必须遵循标准才能使用。

通常我会像这样加载.properties文件:

<bean id="applicationProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="file:///PATH_TO_FILE\file.properties"/>
</bean>

然后,我可以在${variable}

形式的变量中将属性注入我的spring.xml

我的自定义xml如下所示:

<configAttributes>
<attributes>
    <attribute>
        <name>NameOftheVariable</name>
        <description>Text</description>
        <value>valueIWantoToInject</value>
    </attribute>
<attributes>

我使用的是spring-beans 2.5和Java EE 6。

感谢。

2 个答案:

答案 0 :(得分:0)

使用任何解析器读取xml文件,我假设您已按照您在评论中提到的那样进行操作。

所以现在你的spring配置中有一个客户端bean,它需要从xml解析的值中注入属性。

所以,只需在春天加载该bean

BeanClass bean = `context.getBean(clientBeanid);

然后将解析后的值从xml文件设置为bean,如下所示

bean.setName(parsedxmlname);
bean.setName(parsedxmldescription);

等等。

答案 1 :(得分:0)

这是一个两步解决方案

  1. Overriding PropertyPlaceholderConfigurer 你必须覆盖 resolvePlaceholder()其中将插入逻辑以返回预期结果

  2. Parsing the xml 解析器应该帮助读取所需格式的xml并将其提供给resolvePlaceholder()