2016-12-04 11 views
0

저는 이제 봄과 mybatis와 함께 프로젝트 작업을 구성하고 있습니다.MyBatis에서 작업 할 때 PooledDataSource와 dbcp를 선택하는 방법은 무엇입니까?

데이터 소스로 org.springframework.jdbc.datasource.DriverManagerDataSource을 사용해야한다고 나와 있지만 mybatis는 데이터 소스로 PooledDataSource을 사용하므로 혼란 스럽습니다. 그래서 DirverManagerDataSource의 소스 코드를 읽었습니다. 단지 모의 풀 연결 일뿐입니다. 그래서 나는 선택하는 법을 안다.

하지만 곧 새로운 문제가 생깁니다. PooledDataSourceDBCP 사이에서 선택하는 방법은 무엇입니까? PooledDataSource의 소스 코드를 읽었을 때도 간단한 구현이지만이 두 lib의 코드는 너무 복잡하므로이 코드를 읽을 시간이 없습니다.

어떤 것이 더 강력한 지 알려주실 수 있습니까? 그리고 왜? 감사!

답변

0

스프링과 MyBatis의 경우 기능적으로 상관 없습니다. 구성에 사용 가능한 DataSource이있는 한 모든 것이 작동합니다. Spring을 사용하면 Spring 설정에서 DataSource을 생성하고이를 MyBatis SqlSessionFactoryBean으로 전달하는 것이 가장 쉽다.

의 MyBatis 'PooledDataSource는 성능 관점에서 확인을해야하지만 synchronize는 그래서 이 매우 높은 동시성 등의 경합 문제가있을 수 있습니다 않습니다. 이것은 Spring에서 일반적인 빈처럼 설정 될 수있다.

DPCP에는 더 많은 기능 (esp JMX 모니터링)이 있으며 버전 2는 DPCP v1보다 향상된 성능을 제공해야합니다.

컨테이너에서 실행중인 경우 JNDI를 통해 컨테이너 풀을 사용할 수 있습니다 (JndiObjectFactoryBean 참조). Tomcat을 사용하는 경우 자신의 pool implementation이됩니다.

+0

컨테이너에서 실행중인 경우 일반적으로 JNDI를 통해 컨테이너의 풀을 사용합니까? – Oolong

+0

컨테이너에서 실행할 때 컨테이너 풀과 타사 풀간에 차이가 있습니까? – Oolong

+0

예제, 내가 Tomcat에서 실행 중일 때 Tomcat의 풀과 DPCP V2의 차이점은 무엇입니까? – Oolong