2013-02-21 2 views
1

많은 컨트롤러가있는 스프링 템플릿 프로젝트를 만들었습니다. 내 컨트롤러에서 DAO 개체에 연결하고 DAO가 내 로컬 데이터베이스에서 최대 절전 모드 개체를 저장/업데이트/가져올 것입니다.스프링 컨트롤러 및 엔티티 관리자

가장 좋은 방법은 무엇입니까? 동일한 프로젝트에서 구현해야합니까, 아니면 내 컨트롤러 프로젝트와 데이터베이스 액세스를 나타내는 프로젝트가 있어야합니까?

이 후, 내 컨트롤러를 호출하고 데이터베이스에서 작업을 수행 할 Android app을 개발할 것입니다.

이 아키텍처를 도와 줄 수 있습니까? 감사합니다

답변

3

확실하게 둘 중 하나의 옵션 (동일한 프로젝트 또는 별도의 프로젝트에서)을 주장 할 수 있습니다. 내 프로젝트에서 나는 실용적인 접근 방식을 취하는 경향이있다. 프로젝트 규모가 너무 작 으면 프로젝트 모듈을 별도의 프로젝트 모듈로 만들 가치가 없을 것입니다. 이 경우에는 패키지 수준에서 분리하는 것만으로 충분합니다. 그러나 프로젝트 규모가 클수록 책임과 의존성에 따라 구성 요소를 분리하는 것이 유용 할 것입니다.

그러나 컨트롤러에서 직접 DAO를 사용하지 않는 것이 좋습니다. 반드시 나쁜 습관은 아니지만 컨트롤러가 비즈니스 논리 (유형 변환, 데이터 조작 등)로 빠르게 넘치게되어 다른 곳에서 더 잘 처리됩니다. 이 다른 곳은 정확히 어디입니까? 자, DAO와 컨트롤러 사이의 간격을 메우는 서비스 계층을 구축 할 수 있습니다. 이렇게하면 서비스 레이어가 데이터 조작 및 기타 비즈니스 로직을 처리 할 수있는 반면 컨트롤러는 서비스 레이어에서 데이터를 가져오고 서비스하는 것에 대해 걱정할 수 있습니다. 희망이 도움이됩니다.