工厂方法的Spring注释

时间:2012-12-20 18:44:44

标签: java spring

我有以下oracle连接池工厂定义。问题是我必须将整个工厂实例注入bean或者某种方式我可以将OracleConnectionPoolDataSource注入bean吗?

    <bean id="oraclePooledDataSourceFactory" class="oracle.ucp.jdbc.PoolDataSourceFactory" factory-method="getPoolDataSource">
    <!-- DataSource Class to be used -->
    <property name="connectionFactoryClassName" value="oracle.jdbc.pool.OracleConnectionPoolDataSource"/>
    <!-- Connection -->
    <property name="URL">
        <value>${jdbc.connection.url}</value>
    </property>
    <property name="user">
        <value>${jdbc.connection.username}</value>
    </property>
    <property name="password">
        <value>${jdbc.connection.password}</value>
    </property>

Bean注释:??

    @Autowired
@Required
@Qualifier("oraclePooledDataSource") <------ ????
public void setDatabaseSource(OracleConnectionPoolDataSource databaseSource) {
    this.databaseSource = databaseSource;
}

1 个答案:

答案 0 :(得分:3)

我希望这有效...... 从oraclePooledDataSourceFactory定义中删除factory-method属性,并引入另一个bean定义。

<bean id="oraclePooledDataSource" factory-bean="oraclePooledDataSourceFactory"
  factory-method="getPoolDataSource"/>

在你的班级autowire保持它像你提到的方式。我不确定您是否需要@Required属性