업무를 관리하는 방법에 봄에 트랜잭션의 MyBatis 관리 및 통합 스프링 후

   거래 1.mybatis 관리

    SqlSessionFactory는이 SQLSESSION를 연 후, 시사 SQLSESSION 공장 TransactionFactory를 주입합니다 :

    

개인 SQLSESSION openSessionFromDataSource (는 ExecutorType execType, TransactionIsolationLevel 레벨 부울  자동 커밋) {  트랜잭션 TX = NULL ;     

시도
{ 최종 환경 환경 = configuration.getEnvironment (); 최종 TransactionFactory transactionFactory = getTransactionFactoryFromEnvironment (환경); TX = transactionFactory.newTransaction (environment.getDataSource () 층, 자동 커밋); 최종 실행기 실행기 = configuration.newExecutor (TX, execType); 반환 새로운 DefaultSqlSession (구성, 집행, 자동 커밋을); }캐치 (예외 전자) { closeTransaction (TX); // 가져온 연결이있을 수 있습니다 것은 그래서 통화 가까운 () 할 수 있습니다 던져 ExceptionFactory.wrapException ( ". 오류 개회식 원인 :"+ 전자, 전자); } 마지막 { ErrorContext.instance () (리셋).; } } //事务的生产交给   
TransactionFactory

개인 TransactionFactory getTransactionFactoryFromEnvironment (환경 환경) { 경우 (환경 == null의 || environment.getTransactionFactory () == NULL을 ) { 반환 ManagedTransactionFactory을 (); } 리턴 )를 environment.getTransactionFactory (; }

 

 

생산은에 의해 업무를 MyBatis로 그래서 생산 TransactionFactory,이 클래스는 인터페이스이며, 특정 구현은 봄에 진정한 통합의 MyBatis을 수행 할 수있는 논리적 인 장소입니다 SpringManagedTransactionFactory 구현 인터페이스, 봄의하여 트랜잭션 관리 MyBatis로 관리 할 수

논리의 전송을 달성하기 위해 :

  < ID = "SqlSessionFactory는" 클래스 = "org.mybatis.spring.SqlSessionFactoryBean" > 
        < 속성 = 데이터 소스 "" REF = 데이터 소스 "" /> 
        < 속성 = "mapperLocations" = "클래스 경로 *. * XML" /> 
    </ >

스프링 배치 SqlSessionFactoryBean 수행 afterPropertiesSet 방법 SqlSessionFactory는 초기화 및 배치 에 TransactionFactory를 SpringManagedTransactionFactory

 

 < 클래스 = "org.mybatis.spring.mapper.MapperScannerConfigurer" > 
        < 속성 이름 = "basePackage" = "COM. *. **" /> 
        < 속성 이름 = "sqlSessionFactoryBeanName" = "SqlSessionFactory는" /> 
    < / >

MapperScannerConfigurer의 수행 매퍼 인터페이스 프록시를 달성하기위한 방법 postProcessBeanDefinitionRegistry 스프링 컨테이너 관리 프록시 객체

추천

출처www.cnblogs.com/eason-ou/p/12515921.html