IOC 컨테이너 외부에서 간단한 스프링 JDBC 트랜잭션을 수행하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/557667

문제

내가 작업하고있는 프로젝트는 모든 보일러 플레이트 영광에서 직선 JDBC 데이터 액세스를 사용하며 트랜잭션을 사용하지 않습니다. 트랜잭션을 사용하고 데이터 액세스 방법이 작성되는 방식을 단순화하는 것이 중요합니다. 특히 현재 일부 변경이 이루어지면서 중요합니다. 이 프로젝트는 꽤 오랫동안 사용되어 왔으며 ORM 프레임 워크에 적합하지 않습니다. 또한 많은 싱글 톤 (ugh)을 사용하여 의존성 주입을 사용할 수있게하기 위해 그것을 풀어주는 것은 상당한 양의 일이 될 것이며, 우리가 지금 그렇게해야한다고 누군가에게 설득 할 수 있다고 생각하지 않습니다.

나는 특히 Spring JDBC의 인터페이스, 특히 그것을 통해 SimpleJdbcTemplate. 내 질문은 모든 데이터 액세스 방법이나 스프링 IOC 컨테이너 또는 AOP를 사용하지 않고도이를 위해 간단한 (서플릿 요청 당) 트랜잭션을 활성화하는 방법에 관한 것입니다. 나는 내 자신의 아키텍처를 가지고 놀았는데 SimpleJdbcTemplate요청의 맥락에서 호출이 이루어질 때 단일 요청-로컬 연결 및 거래를 사용할 수 있습니다 ( ServletRequestListener a ThreadLocal). 잘 작동하는 것 같지만 Spring JDBC와 같은 좋은 외부 라이브러리를 사용하는 것이 바람직하다고 생각합니다.

누구든지 이것에 대한 경험이 있습니까?

도움이 되었습니까?

해결책

아마도 당신은 사용할 수 있습니다 트랜잭션 템플릿 그리고 TransactionCallback 설명대로 프로그래밍 방식 트랜잭션 관리?

다른 팁

Spring은 AOP 수업 작성에 대해 걱정하지 않고 선언적으로 거래를 처리합니다. JDK 5 이상 및 스프링 2.5를 사용하는 경우 더 나은 주석.

나는 서비스 당 거래에 동의하지 않을 것이다. 작업 단위에 대해 알고있는 앱의 일부인 서비스 계층이 있어야합니다. 컨트롤러는 거래를 처리하는 서비스를 호출합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top