2012-03-18 3 views
3

나는 자바 웹 응용 프로그램 개발자입니다.자바 웹 응용 프로그램의 레이어

그리고 나는 서버 측의 레이어와 coufused를 발견했습니다.

MVC (모델/뷰/컨트롤)가 아니라 DAO/서비스 레이어를 의미합니다.

Dao 레이어는 데이터베이스를 연결하는 데 사용됩니다.

왜 서비스 계층입니까?

이제 우리는 spring mvc 프레임 워크를 사용하기 때문에 데이터를 가져 오기 위해 DAO를 호출하는 것을 포함하여 컨트롤에서 로그인을 처리하는 데 사용되었습니다. 서비스 계층이 필요합니까?

+0

참조 http://en.wikipedia.org/wiki/Multitier_architecture – MJM

+1

http://stackoverflow.com/questions/698220/mvc-vs-n-tier-architecture – MJM

답변

2

서비스 계층은 트랜잭션을 알고 있습니다. 유스 케이스와 작업 단위에 매핑됩니다. 웹 UI가 없어지더라도 서비스 지향 아키텍처의 기초이기 때문에 유용 할 수 있습니다.

내가 레이어를 제거하는 유일한 시간은 데이터에 대한 읽기 전용 액세스 일 것입니다. 이 경우 나는 서비스보다 DAO를 처분 할 가능성이 더 높습니다.

1

DAO 층 - 그것은 DB 트랜잭션을 처리 만 DB 물건, 기본 CRUD 및 다른 찾을 쿼리를 처리

서비스 레이어 - 사실 비즈니스 특정 로직을 수행하는 DAO 층에 따라 달라집니다, 그것은 비즈니스 트랜잭션을 처리

을 구별 할 수있는 장점은 참조 또한 원시 스토리지

를 변경하는 경우/변경 DAO 층을 연결하는 기회를 가질 것, 다른 프론트 엔드 서비스 계층을 연결 할 수 있습니다

3

는 서비스 계층에 대한 몇 가지 이유가 있습니다,하지만 나를 위해 몇 가지 주요 장점이 있습니다 :

  1. 집계 구성 될 수 있습니다 서비스 방법에 대한 선언적 트랜잭션 제어를 할 수 있습니다 비 트랜잭션 DAO 호출.
  2. 비즈니스 계층 논리를 단순한 DB 액세스와 명확하게 구분합니다.
  3. 위의 내용을 쉽게 교체 할 수있는 청크로 캡슐화하여 더 높은 수준의 테스트를 쉽게 할 수 있습니다.

서비스 계층 이 필요합니까?? 당연히 아닙니다 - 그러나 기술적으로 층이 필요합니다; 모든 것이 JSP 페이지에서 마무리 될 수있다. 세분성, 통제 및 관심사의 분리 문제입니다.

1

서비스 계층은 일반적으로 통합 계층으로 사용됩니다. 그것은 그것과 관련이없는 특징을 가진 DAO 레이어의 'muddying'을 방지합니다.예를 들면 :

  • 보안
  • 비즈니스 로직과 검증
  • 외부 시스템 통합

귀하의 서비스 계층은 혼합에서 매칭 시스템의 다양한 '뷰'를 구현하는 것이 어디도 새 기능을 만들기 위해 더 낮은 레이어.

관련 문제