Programming/Java

[완독정리] 자바웹을 다루는 기술 2(스프링)- 길벗

armyost 2021. 2. 9. 22:27
728x90

의존성 주입하기
서로 관련이 있는 기능들은 강하게 결합하고 관련이 없는 기능들은 약하게 결합해야 좋은 프로그램입니다. 스프링 프레임워크에서는 각 클래스들의 연관관계를 클래스들 사이에서 맺는 것이 아니라 스프링 프레임워크에서 설정을 통해 맺어줌으로써 클래스들이 연관 관계를 갖지 않게 구현했습니다. 스프링에서 의존성을 주입하려면 XML이나 애너테이션을 이용해 객체를 주입하여 객체들의 의존관계를 맺어주면 됩니다.

 

MVC
- 모델2 아키텍처를 지원합니다.
- 스프링과 다른 모듈과의 연계가 쉽습니다.
- 타일즈나 사이트메시 같은 View 기술과의 연계가 쉽습니다.
- 태그 라이브러리를 통해 message출력, theme 적용 그리고 입력 폼을 보다 쉽게 구현할 수 있습

 

 

MVC 구현 요소

DispatcherServlet 클라이언트의 요청을 전달받는다. Controller에게 클라이언트의 요청을 전달하고, Controller가 리턴한 결과값을 View에 전달하여 알맞은 응답을 생성하도록 한다.
HandlerMapping 클라이언트의 요청 URL을 어떤 Controller가 처리할지를 결정한다.
Controller 클라이언트의 요청을 처리한 뒤, 그 결과를 DispatcherServlet에 알려준다. 스트러츠의 Action과 동일한 역할을 수행한다.
ViewResolver Commander의 처리 결과를 보여줄 View를 결정한다.
View Commander의 처리 결과를 보여줄 응답을 생성한다.

Spring MVC를 이용하여 웹 어플리케이션을 개발하는 과정은 다음과 같다.

1) 클라이언트의 요청을 받을 DispatcherServlet을 web.xml파일에 설정한다.
2) 요청 URL과 Controller의 매핑 방식을 설정한다.
3) Controller의 처리 결과를 어떤 View로 보여줄 지의 여부를 결정하는 ViewResolver를 설정한다.
4) Controller를 작성한다.
5) 뷰 영역의 코드를 작성한다.

 

 

URL과 View 혹은 Controller의 매핑 방식

BeanNameUrlHandlerMapping

<bean name="/hello.do"
        class="net.daum.ts.techReport.report2.springmvc.HelloController" />



SimpleUrlHandlerMapping

<bean id="beanNameUrlMapping" 
        class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <value>
                /content/*.html=contentController
                /**/help.html=helpController


InternalResourceViewResolver

<bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/view/" />
        <property name="suffix" value=".jsp" />


MethodNameResolver

<bean id="userMethodNameResolver"
        class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">
        <property name="mappings">
         <props>
           <prop key="/test/login.do">login</prop>