Spring 사무 @ Transactional 이 유효 하지 않 은 이유

1238 단어 Spring소스 코드
1. 데이터베이스 시트 구조 저장 엔진 은 MyISAM 이 고 MyISAM 은 지원 되 지 않 습 니 다. InnoDB 2. Spring 과 SpringMVC 를 동시에 사용 해 야 할 때 SpringMVC 가 Controller 를 스 캔 할 때 controller 에 주입 해 야 할 Service 를 IOC 로 변환 합 니 다. 여기 서 MVC 가 주입 하면 AOP 스 캔 을 하지 않 기 때문에 controller 의 표현 식 을 스 캔 할 때 Service 의 가방 을 제거 해 야 합 니 다.applicationContextLoader 의 listener 설정 파일 에서 설정 해 야 합 니 다. 3. @ Transactional 은 AOP 동적 프 록 시 를 기반 으로 하기 때문에 방법 은 Public 여야 합 니 다.다른 장식 부적 은 유효 하지 않 습 니 다.4. Spring 트 랜 잭 션 컨트롤 러 는 catch 에서 Runtime Exception 이나 잘못된 정보 가 있 을 때 만 스크롤 백 을 할 수 있다 고 판단 하기 때문에 Runtime Exception 의 이상 이 아니면 스크롤 백 을 하지 않 습 니 다.
@Override
    public boolean rollbackOn(Throwable ex) {
        return (ex instanceof RuntimeException || ex instanceof Error);
    }

5. 같은 방법 으로 사 무 를 호출 하 는 것 은 유효 하지 않 습 니 다. 같은 방법 으로 사 무 를 호출 하려 면 대리 대상 을 가 져 와 야 합 니 다.
 AopContext.currentProxy();//      

호출 을 진행 하려 면 this. xxx () 를 직접 호출 하거나 사용 하 는 것 은 유효 하지 않 습 니 다.

좋은 웹페이지 즐겨찾기