我有以下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;
}
答案 0 :(得分:3)
我希望这有效......
从oraclePooledDataSourceFactory
定义中删除factory-method属性,并引入另一个bean定义。
<bean id="oraclePooledDataSource" factory-bean="oraclePooledDataSourceFactory"
factory-method="getPoolDataSource"/>
在你的班级autowire保持它像你提到的方式。我不确定您是否需要@Required
属性