如何将xmlbean转换为springjavabean
我想将这个xml转换成新的SpringJavaBean如何将xmlbean转换为springjavabean,java,spring,Java,Spring,我想将这个xml转换成新的SpringJavaBean <bean id="velocityEngine"class="org.springframework.ui.velocity.VelocityEngineFactoryBean"> <property name="velocityProperties"> <map> <entry key="resource.loader" value="ds"/> <
<bean id="velocityEngine"class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="velocityProperties">
<map>
<entry key="resource.loader" value="ds"/>
<!--<entry key="ds.resource.loader.class" value="org.apache.velocity.runtime.resource.loader.DataSourceResourceLoader"/>--><!--should be left out-->
<entry key="ds.resource.loader.resource.table" value="templates" />
<entry key="ds.resource.loader.resource.keycolumn" value="tid" />
<entry key="ds.resource.loader.resource.templatecolumn" value="template" />
<entry key="ds.resource.loader.resource.timestampcolumn" value="updated" />
<entry key="ds.resource.loader.instance" value-ref="dataSourceLoader" />
<entry key="ds.resource.loader.cache" value="true" />
</map>
</property>
有人能清楚地告诉我们这种转化是如何进行的,以及它是如何运作的吗
Java类以
@bean应该添加到@Configuration标记的类中,如下所示
@Bean
public VelocityEngineFactoryBean velocityEngine() {
VelocityEngineFactoryBean b = new VelocityEngineFactoryBean ();
b.setVelocityProperties(the map with all your key values);
return b;
}
如果某些值是另一个Bean,例如dataSourceLoader,您可以将它们@Autowire到同一个类并使用属性您的java类应该用@Configuration annotation注释,方法应该用@Bean注释。请参阅下文
@Configuration
class AppConfiguration{
@Bean
public VelocityEngine velocityEngine() throws VelocityException, IOException{
VelocityEngineFactoryBean factory = new VelocityEngineFactoryBean();
Properties props = new Properties();
props.put("resource.loader", "ds");
props.put("class.resource.loader.class","org.apache.velocity.runtime.resource.loader.DataSourceResourceLoader");
props.put("class.resource.loader.resource.table","templates");
props.put("ds.resource.loader.resource.keycolumn","tid");
props.put("ds.resource.loader.resource.templatecolumn","template");
props.put("ds.resource.loader.resource.timestampcolumn","updated");
props.put("ds.resource.loader.instance","dataSourceLoader");
props.put("ds.resource.loader.cache",true);
factory.setVelocityProperties(props);
return factory.createVelocityEngine();
}
}
有关基于Java的配置的更多信息,请参见,这是Groovy更漂亮的一点。一些好文档:除非依赖项在类中多次使用,否则通常最好将它们作为方法参数连接起来。VelocityEngineFactory显示为不推荐