문제는 일반적으로 서비스 계층을 추가하는 이유

1, 비교 트랜잭션 서비스 층과 층 DAO인가

    네 개의 특성 조합 트랜잭션 (ACID)는, 그것을 잘 서비스 계층에서 왜 증가를 설명 할 수있다. 첫째, 트랜잭션 주석 @Transactional이 DAO 레이어를 추가 한 경우, 한 데이터베이스에 추가 및 삭제를 할, 당신은 트랜잭션을 제출해야 하므로 트랜잭션의 특성, 특히 트랜잭션 일관성,이 동시성 문제를 담당 할 것입니다 수행에서; 데이터베이스 데이터 바이어스의 존재에서 발견 될 가능성이 높다. 

    일반적으로, 상기 방법은 서비스 계층의 방법에서, 층 DAO 복수의 서비스 계층을 호출 플러스 트랜잭션 주석 @Transactional 수 있으며, 따라서, 복수의 데이터베이스를 이용하여 거래 요청은 트랜잭션이 특성 것 전체 플레이.


2 플러스 층 업무 차이점

Spring 트랜잭션 관리 트랜잭션 비즈니스 로직, 비즈니스 로직은 데이터의 원 자성을 보장합니다.

거래의 프로젝트 성격에 따라 분류 할 수있다 : 트랜잭션이 세 가지 수준 (DAO 계층, 서비스 계층 및 웹 층)로 설정할 수 있습니다. 

첫째, 컨트롤러 레이어의 업무

    이 사람들을 위해 일반적으로 시스템의 높은 보안 요구 사항 이 있습니다. 전자 상거래 사이트 등. 작은 크기는 일반 시스템이 너무 잘 될 필요는 없다. 

둘째, 서비스 계층 담당

   이것은 일반적인 트랜잭션 경계이며, 비즈니스 로직에 거래만큼 트랜잭션 롤백에 비즈니스 로직 오류 또는 이상을 설정합니다. 작은 크기는 일반적으로이 방법을 추천합니다 .

셋째 : DAO 계층 데이터 트래픽

   종종 데이터베이스 트랜잭션 있다고한다. 이 거래는 안전의 측면에서 낮은 필요합니다. 그것은 증가 트랜잭션 작업과 같은 간단한 CRUD 작업을 제공하는 것입니다. 대형 입자 크기.

   서비스 계층 DAO를 동작시키는 방법은 복수의 동작에 관련 될 수 있기 때문에 서비스 계층은 트랜잭션에 배치된다. 이러한 작업 다오, 여러 DAO 작업이 실패의 실행에 서비스 층은 모두 성공적으로 제출, 롤백됩니다.

    서비스가 비즈니스 거래 시스템 거래로 나누어, 비즈니스 트랜잭션, 비즈니스 로직의 일관 작업이 시스템이 트랜잭션 데이터베이스 트랜잭션의 본질을 의미입니다

    봄 구성 트랜잭션 데이터의 원 자성을 보장하기 위해, 물론, 트랜잭션 관리 비즈니스 로직, 비즈니스 로직이 무엇인지 관리하는 것입니다;

    다오 층, 데이터 액세스 레이어는 무엇인가, 다른 및 서비스 계층입니다 비즈니스 로직을 포함 할 수 없습니다;

    서비스 계층은 트랜잭션 서비스 레이어 있도록하는 것입니다, 비즈니스 로직을 관리하는 것입니다.


참조 :

https://blog.csdn.net/panyangxu/article/details/77431873

https://www.cnblogs.com/hutton/p/5493095.html

 

 

추천

출처blog.csdn.net/jiahao1186/article/details/91567701