使用变量和资源导入将Spring XML转换为JavaConfig

时间:2016-02-29 02:12:48

标签: java xml spring-boot resources spring-java-config

我有一个spring boot应用程序,我试图将以下spring xml config转换为java config:

<bean id="pageDAO" factory-bean="springWSDaoFactory"
    factory-method="createPageDAO" lazy-init="true">
    <constructor-arg type="java.lang.String" value="${cds.host}" />
    <constructor-arg type="java.lang.Integer" value="${cds.port}" />
</bean>

<!-- CoreApi + plugins configuration    -->             
<import resource="classpath:coreAPI_SpringWSContext.xml"/>      
<bean name="springWSDaoFactory" class="com.blan.torque.dao.springws.SpringWSDAOFactory" lazy-init="true">
    <property name="serviceVersion" value="${service.version}"/>
    <property name="securityKey" value="${service.key}"/>
</bean>

到目前为止,我对javaconfig的所作所为:

@Bean
public PageDAO pageDAO() {
    return springWSDAOFactory().createPageDAO(null, null);
}

@Bean
public SpringWSDAOFactory springWSDAOFactory() {
    SpringWSDAOFactory springWSDAOFactory = new SpringWSDAOFactory();
    springWSDAOFactory.setServiceVersion(null);
    springWSDAOFactory.setSecurityKey(null);
    return springWSDAOFactory;
}

我不知道如何在Java中实现<import resource...../>,更不用说导入像${cds.host}这样的变量了。我已将null作为占位符放在任何地方。但是有关如何使用注释执行此操作的任何想法?

1 个答案:

答案 0 :(得分:1)

在配置类中,您可以使用注释@ImportResource代替<import resource... />

要从属性文件中读取字符串,请尝试使用@Value声明字符串并使用先前声明的字符串。

例如:

@Value("${service.version}")
private String serviceVersion;

然后将其用作参数

springWSDAOFactory.setServiceVersion(this.serviceVersion);

我希望能帮助你。