我正在尝试使用自定义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}
。
我的自定义xml如下所示:
<configAttributes>
<attributes>
<attribute>
<name>NameOftheVariable</name>
<description>Text</description>
<value>valueIWantoToInject</value>
</attribute>
<attributes>
我使用的是spring-beans 2.5和Java EE 6。
感谢。
答案 0 :(得分:0)
使用任何解析器读取xml文件,我假设您已按照您在评论中提到的那样进行操作。
所以现在你的spring配置中有一个客户端bean,它需要从xml解析的值中注入属性。
所以,只需在春天加载该bean
BeanClass bean = `context.getBean(clientBeanid);
然后将解析后的值从xml文件设置为bean,如下所示
bean.setName(parsedxmlname);
bean.setName(parsedxmldescription);
等等。
答案 1 :(得分:0)
这是一个两步解决方案
Overriding PropertyPlaceholderConfigurer 你必须覆盖 resolvePlaceholder()其中将插入逻辑以返回预期结果
Parsing the xml 解析器应该帮助读取所需格式的xml并将其提供给resolvePlaceholder()