[英]Use Spring XML configured bean inside @Configuration Class and Use the bean as factory-bean for another bean
我在Spring XML中具有以下bean配置,該配置讀取一些屬性文件。 然后,我將bean serverPropertyLoader用作factory-bean,通過factory-method創建另一個類型為java.util.Properties的bean serverProperties 。 我在下一個配置中將bean serverProperties傳遞給org.springframework.context.support.PropertySourcesPlaceholderConfigurer ,以允許spring處理屬性注入。
<bean name="serverPropertyLoader" class="com.xxx.utils.ServerPropertyLoader">
<constructor-arg name="propertyFiles">
<list>
<value>config.properties</value>
</list>
</constructor-arg>
</bean>
<bean id="serverProperties" factory-bean="serverPropertyLoader" factory-method="getProperties" />
<bean id="propertyPlaceholder" class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="propertiesArray">
<list>
<ref bean="serverProperties" />
<ref bean="databaseProperties" /> <!-- Another Type of Properties -->
</list>
</property>
</bean>
現在,我想使用Spring Java Configuration中的serverPropertyLoader或serverProperties來在創建如下所示的bean時讀取一些屬性。
@Configuration
public class DataAccessConf {
@Autowired
private ServerPropertyLoader serverPropertyLoader;
@Autowired
private Properties serverProperties;
@Bean(name = "dataSource")
public javax.sql.DataSource datasource() {
// want to use serverPropertyLoader or serverProperties here
return new DataSource(...);
}
}
serverPropertyLoader和serverProperty均為null。 我該如何自動接線其中之一。 春季版:4.1.6.RELEASE
Spring不知道,bean'dataSource'需要'serverProperties'和'serverPropertyLoader'。 因此,它會嘗試在彼此自動連接之前創建“ dataSource”。這不是一個人所期望的,但是我遇到了類似的情況,
將數據源的簽名更改為
public javax.sql.DataSource datasource(
ServerPropertyLoader serverPropertyLoader,
Properties serverProperties )
Spring將為參數設置路徑,使用參數代替字段,這應該可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.