Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将xmlbean转换为springjavabean_Java_Spring - Fatal编程技术网

如何将xmlbean转换为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"/> <

我想将这个xml转换成新的SpringJavaBean

<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显示为不推荐