본문 바로가기
프로그래밍/JavaWebProgramming

[Lesson06] 의존성 낮추기

by Luhie 2016. 12. 29.



서블릿을 하나에 모아 놓고 서블릿일 필요가 없는 것을 분리 

분리된 컨트롤러를 호출 매번 호출 하게 되니 매번 호출 하지 않도록 코드 간략화


DispatcherServlet.java(수정 전)

모든 컨트롤러들이 DAO를 필요로 할까? 아니다. 

임의적으로 모든 컨트롤러가 주입받게 했고(강제성), 

컨트롤러에 따라서 DAO 종류가 다를 수도 있다.

컨트롤러가 만들어져야 디스패쳐 서블릿을 만들 수 있다(의존성 높음)


이에 sc에서 DAO를 가져왔지만 

이제 sc에서 컨트롤을 가져오면 DAO를 가져올 필요가 없고

new 연산자가 사라지게 된다.



MemberListController.java

MemberDao가 필요하기 때문에 

setMemberDao 메소드를 선언하여 주입을 위한 준비


MemberAddController.java


ContextLoaderListener.java

ㄱ. 공통 저장소 : DAO

ㄴ.  공통 저장소 : controller(+DAO)

27~30번 라인 줄인 것이 32번 라인

ServletContext에 "/member/list.do" "/member/add.do" 로 

set 하게 되면 통일성을 갖게 됨






DispatcherServlet.java(수정 후)

controller = new MemberListController(); 를 

controller = (Controller)sc.getAttribute("/member/list.do");

controller = new MemberAddController();를

controller = (Controller)sc.getAttribute("/member/add.do");

공통되는 부분이 있다.

controller = (Controller)sc.getAttribute(servletPath



'프로그래밍 > JavaWebProgramming' 카테고리의 다른 글

[Lesson06] 리플랙션 API를 이용  (0) 2016.12.29
[Lesson05] 리스너  (0) 2016.12.21
[Lesson05] ListServlet DAO 분리  (0) 2016.12.16