如何向已经使用Java定义的Xml文件添加子标记?
我有一个包含Spring项目配置的XML文件,我想动态添加一个新bean。我必须修改初始xML文件并添加新的bean定义:如何向已经使用Java定义的Xml文件添加子标记?,java,xml,spring,Java,Xml,Spring,我有一个包含Spring项目配置的XML文件,我想动态添加一个新bean。我必须修改初始xML文件并添加新的bean定义: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocat
<?xml version="1.0" encoding="UTF-8"?>
<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.xsd">
<bean id="config"
class="myclass">
<property name="configXml">
<value>config.xml</value>
</property>
</bean>
<-- here a want to add a new bean definition <bean>....</bean> -->
</beans>
config.xml
有人有什么想法吗?我仍然不是100%理解你的意思,但这里有两个案例可以尝试 如果希望基于某个派生值指定bean的属性,可以使用Spring表达式语言
如果您想要更复杂的东西,您可以使用工厂bean以编程方式构造bean
<bean id="someBean" class="example.SomeBeanFactory">
<property name="config" ref="config"/>
</bean>
有点像
class SomeBeanFactory implements FactoryBean<SomeBean> {
public void setConfig(MyClass config) { ... }
public SomeBean getObject() {
...
}
}
类SomeBeanFactory实现FactoryBean{
公共void setConfig(MyClass config){…}
公共SomeBean getObject(){
...
}
}
动态?你的意思是在运行时吗?是的,在运行时,用户不需要定义bean,他只需提供相关信息,应用程序就会生成配置文件(XML),因此我必须将新的bean定义添加到配置文件中。。。必须是ander标签听起来不像是你应该用Spring做的事情。您想在新bean中添加什么?我想通过添加新bean定义来修改XMLSpring配置文件。在我的例子中,配置文件不是我的Eclipse项目的一部分,它是一个外部文件,因为我的bean是作为jar文件引入应用程序的,我的意思是bean也是外部的。我不想让用户定义bean,他只需要给我一些信息。应用程序为他添加bean定义;但是没有对xml的任何修改。我希望我能解释我的意思:)
class SomeBeanFactory implements FactoryBean<SomeBean> {
public void setConfig(MyClass config) { ... }
public SomeBean getObject() {
...
}
}