使用变量和资源导入将 Spring XML 转换为 JavaConfig
Converting Spring XML to JavaConfig with Variable and Resource Import
我有一个 spring 引导应用程序,我正在尝试将以下 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>
这是我目前的java配置:
@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
放在各处作为占位符。但是关于如何使用注释执行此操作的任何想法?
在您的配置 class 中,您可以使用注释 @ImportResource
而不是 <import resource... />
。
要从 属性 文件中读取字符串,请尝试使用 @Value
声明一个字符串并使用之前声明的字符串。
例如:
@Value("${service.version}")
private String serviceVersion;
然后作为参数使用
springWSDAOFactory.setServiceVersion(this.serviceVersion);
希望对你有所帮助。
我有一个 spring 引导应用程序,我正在尝试将以下 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>
这是我目前的java配置:
@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
放在各处作为占位符。但是关于如何使用注释执行此操作的任何想法?
在您的配置 class 中,您可以使用注释 @ImportResource
而不是 <import resource... />
。
要从 属性 文件中读取字符串,请尝试使用 @Value
声明一个字符串并使用之前声明的字符串。
例如:
@Value("${service.version}")
private String serviceVersion;
然后作为参数使用
springWSDAOFactory.setServiceVersion(this.serviceVersion);
希望对你有所帮助。