아파치 dbcp 예제에서 패턴을 따르려고했는데, 데이터베이스 속성의 출처 및 위치와 애플리케이션 컨텍스트에 배치해야하는 빈을 제외한 모든 것을 이해합니다.스프링으로 아파치 dbcp PoolingDataSource 설정하기
대신 스프링 데이터 소스를 사용했지만, 나는 그것을 바쁘게 설정했고 아파치 dbcp 자체가 제공 한 원래의 데이터 소스를 설정하는 데 어려움이 있음을 기억합니다. 그래서 나는 문제를 직시하고 PoolingDataSource 사용의 원래 의도를 성취 할 수있는 시간을 갖습니다.
스프링 구현을 사용한 이유는 데이터베이스에 연결하기위한 매개 변수 설정 방법을 제공하기 때문입니다.
는 http://commons.apache.org/dbcp/apidocs/org/apache/commons/dbcp/PoolingDataSource.html
에 따르면 URL 또는로드 드라이버와 같은 구성을 채우는 할 방법이 없습니다.
개체 풀 등을 통해 추적하려고 시도했지만 실제로 손실되었습니다.
회신 : 예, 저는 apache basicDataSource를 사용하고 싶지 않습니다.
이제 문제로 돌아가서 매개 변수를 가져올 위치를 실제로 이해할 수 없습니까? 운전사? URL? 연결 팩토리에 url, pw 및 username이 설정되어있는 것으로 보입니다. 하지만 어디에로드 될 postgresql 드라이버를 가져올 수 있습니까?
구성을 완료하는 데 도움을주십시오.
나는 우리가 처음 두에 관심이 생각<!-- the one I want to use now -->
<bean id="dataSource" class="org.apache.commons.dbcp.PoolingDataSource">
<constructor-arg><ref bean="pool"/></constructor-arg>
</bean>
<!-- the one I used before as a workaround
<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver"/>
<property name="url" value="jdbc:postgresql:postgres"/>
<property name="username" value="magicUserName"/>
<property name="password" value="magicPassword"/>
</bean> -->
<bean id="pool" class="org.apache.commons.pool.impl.GenericObjectPool">
<property name="minEvictableIdleTimeMillis"><value>300000</value </property>
<property name="timeBetweenEvictionRunsMillis"><value>60000</value </property>
</bean>
<bean id="dsConnectionFactory" class="org.apache.commons.dbcp.DataSourceConnectionFactory">
<constructor-arg><ref bean="dataSource"/></constructor-arg>
</bean>
<bean id="poolableConnectionFactory" class="org.apache.commons.dbcp.PoolableConnectionFactory">
<constructor-arg index="0"><ref bean="dsConnectionFactory"/ </constructor-arg>
<constructor-arg index="1"><ref bean="pool"/></constructor-arg>
<constructor-arg index="2"><null/></constructor-arg>
<constructor-arg index="3"><null/></constructor-arg>
<constructor-arg index="4"><value>false</value></constructor-arg>
<constructor-arg index="5"><value>true</value></constructor-arg>
</bean>
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:annotation-driven transaction-manager="txManager" />
</beans>
을 (구성을 위해 스프링을 사용),하지만 난 단지의 경우 모든 것을 포함. http://forum.springsource.org/showthread.php?10772-How-do-I-create-a-org-apache-commons-dbcp-PoolableConnection
가 * 내가 아파치 BasicDataSource의를 사용하지 않을 * - 왜? 당신의 유스 케이스는 무엇입니까? –
나는 매저 키스트이기 때문에. :-) 만약 내가 심각하게 생각한다면, 나는 진행되고있는 일을 이해하기를 좋아하는 이상한 개발자 중 한 명이다. 필요한 모든 매개 변수를 사용하여 단일 bean을 구성하는 것은 마법의 alibaba dark deeds입니다. 왜 그리고 왜 주사를 맞았는지 이해할 때까지 봄과 마찬가지 였고, DI를 사용하면 왜 맹목적으로 @Autowired를 해고하지 않고 승리를 위해 뛰었 을까요? :-) 코드 작성을 도울 수 있다면 여전히 행복 할 것입니다. 내 유스 케이스는 풀링을 전혀 사용하지 않는지 여부를 현 상태에서 돌 보지 않습니다. – Aubergine
이상하게도, 당신은 그런 종류의 매저 키스트 일뿐입니다 : http://numberformat.wordpress.com/2009/11/11/configuring-a-connection-pool-in-spring-using-dbcp/ –