2012-12-20 31 views
2

我有下面的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> 

豆译注:??

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

请参阅3.2.3.2.3。部分:在以下链接中使用实例工厂方法实例化 http://static.springsource.org/spring/docs/2.0.x/reference/beans.html – Chetan

回答

3

我希望这个作品... 从oraclePooledDataSourceFactory定义中删除工厂方法属性,并引入另一个bean定义。

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

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