Frontier : Spring Transaction Management에 대한보다 심층적 인 연구를 통해이 기사에서는 예제를 만들지 않고 설명을 위해 특정 클래스 및 구성 파일을 지정합니다.
이 기사의 내용 :
1. 선언적 거래가 무엇인지 이해합니까?
2. 선언적 거래 관리는 무엇입니까?
3. 이러한 유형의 거래 관리의 차이점은 무엇입니까?
1. 선언적 거래 란 무엇입니까?
선언 거래 관리는 Spring에서 제공하는 프로그램 거래를 관리하는 방법 중 하나입니다. Spring의 선언 트랜잭션은 선언적 방법을 사용하여 트랜잭션을 처리하고 스프링 구성 파일에서 트랜잭션의 선언적 처리를 사용하여 코드 기반 트랜잭션 처리를 대체합니다. 이것의 장점은 트랜잭션 관리가 개발 구성 요소를 침범하지 않는다는 것입니다. 구체적으로, 비즈니스 로직 객체는 그것이 거래 관리에 있다는 것을 인식하지 못할 것입니다. 실제로 트랜잭션 관리는 비즈니스 논리의 일부가 아니라 시스템 수준의 서비스이기 때문에 동일해야합니다. 트랜잭션 관리를 변경하려면 정의 된 구성 파일의 구성 만 수정하면됩니다. 트랜잭션 관리가 필요하지 않은 경우 구성 파일에서 수정하고 코드를 변경하고 다시 컴파일하지 않고 트랜잭션 관리 서비스를 제거하십시오. 이는 유지 관리가 매우 편리합니다.
2. 선언적 거래 관리 방법.
먼저 선언적 거래 관리 방법에 대해 이야기하기 전에 원래 거래 관리를 살펴 보겠습니다.
위 그림에서 볼 수 있듯이, 먼저 새 세션을 만들어야합니다. oncensession (), 둘째, 세션의 getTransaction () method () 메소드 및 getTransaction (). commit () 메소드를 통해 트랜잭션을 작성하고 커밋해야하며 세션을 닫아야합니다 .Close (). 이런 식으로, 우리는이 방법을 호출 할 때마다 새로운 세션을 재현하고 동일한 일을 반복적으로 수행 할 것입니다. 이는 소프트웨어 엔지니어링 설계 아이디어를 준수하지 않습니다. 다음으로 선언적 트랜잭션 관리를 사용하여 코드를 단순화하고 조정합니다.
1. SpringAop 선언 거래 관리를 사용하십시오.
1.1. AOP의 여러 패키지를 가져와야합니다.
1.2. 그런 다음 Application.xml 구성 파일에서 트랜잭션 구성을 수행합니다.
1.3. 모든 데이터 쿼리 방법을 수정하십시오.
위의 설명 후에는 showallNews () 메소드의 수정을 볼 수 있습니다. 먼저 원래 OpenSession () 메소드를 GetCurrentSess () 메소드로 변경합니다 (참고 : 스크린 샷에는 차이점을 설명하기위한 의견이 있으므로 반복하지 않습니다). 거래를 수동으로 생성하고 커밋 할 필요가 없습니다. SpringAop은 트랜잭션을 자동으로 관리하고 세션을 자동으로 닫습니다.
2. @transactional 주석 메소드를 사용하십시오.
2.1. 먼저 Application.xml 구성 파일에서 트랜잭션 구성을 수행해야합니다 (주석의 Bean 처리 @transactional의 Bean 처리를 처리하기 위해 스프링 컨테이너에 알림) :
2.2. 그런 다음 NewsDaoimpl에서 작업이나 수정을 수행 할 필요가 없습니다.
2.3. NewsServiceImpl에 주석을 추가하십시오.
여기서는 클래스에 @transactional 주석을 추가 할 수 있습니다 (즉, 모든 방법이 트랜잭션 관리에 추가됨) 또는 특정 메소드에 @transactional을 추가 할 수 있습니다. 데이터를 수정할 필요가없는 메소드 인 경우 속성을 추가하십시오.
예 : 모든 데이터 @transactional (readonly = true)을 쿼리하는 메소드
3. SpringAop 및 @Transactional Annotation을 사용하여 구성된 선언 트랜잭션 관리의 차이점 :
1) SpringAop 구성 선언 트랜잭션 관리는 커플 링이 낮고 가독성이 낮고 상세한 표현 및 높은 유연성을 갖습니다.
2) @transactional 주석은 가독성이 높으며 컨텐츠는 분산되어 통합 관리 및 유지 보수에 도움이되지 않으며 결합이 높습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.