【问题标题】:Converting Spring XML to JavaConfig with Variable and Resource Import使用变量和资源导入将 Spring XML 转换为 JavaConfig
【发布时间】:2016-02-29 02:12:48
【问题描述】:

我有一个 spring boot 应用程序,我正在尝试将以下 spring xml 配置转换为 java 配置:

<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 中实现 &lt;import resource...../&gt;,更不用说导入像 ${cds.host} 这样的变量了。我已将null 放在任何地方作为占位符。但是关于如何使用注释来做到这一点的任何想法?

【问题讨论】:

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


    【解决方案1】:

    在您的配置类中,您可以使用注解@ImportResource 而不是&lt;import resource... /&gt;。

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

    例如:

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

    然后使用它作为参数

    springWSDAOFactory.setServiceVersion(this.serviceVersion);
    

    希望对你有所帮助。

    【讨论】:

    • 这就是我想要的,完美。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 2022-12-19
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多