===== Spring MVC Proejct=====
*참조1 [[http://karismamun.tistory.com/21?category=693508]]
*참조2 [[http://karismamun.tistory.com/25?category=693508]]
*참조3 [[http://karismamun.tistory.com/26?category=693508]]
- Spring Legacy Project를 생성
- Spring MVC Project의 구조
* {{:spring:mvcproject:mvc_struct.png}}
- 컨트롤러와 서비스, DAO, Mapper XML, logging XML파일로 채워질 Java Source 디렉토리
- 서블릿설정파일, JSP페이지파일, js파일, 각 종 이미지 및 관련파일등이 채워질 Servlet관련 디렉토리
- WEB-INF폴더에 있는 web.xml파일로 가봅시다.
==== WEB-INF/web.xml ====
contextConfigLocation
/WEB-INF/spring/root-context.xml
org.springframework.web.context.ContextLoaderListener
appServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/spring/appServlet/servlet-context.xml
classpath:mybatis.xml
1
appServlet
/
- contextConfigLocation
* bean의 설정파일
* DB에 대한 bean
- appServlet
* DispatcherServlet의 설정파일
* MVC구조중 C에 해당하는 설정파일로 맵핑된 jsp파일에 맞는 컨트롤러를 찾아주는 역할을 합니다.
- servlet-mapping
* url-pattern을 지정(보통 *.do, *.action등을 사용하죠)
- filter
- listener
* pom.xml은 Spring에 내포되어 있는 Maven설정파일입니다.
* root-context.xml
*
{{:spring:mvcproject:spring_mvc.png}}
사진 출처 : http://terasolunaorg.github.io/guideline/1.0.1.RELEASE/en/Overview/SpringMVCOverview.html#id2
* 보라색 영역은 개발자가 구현하는 부분이다.
* 파란색은 스프링 프레임워크에서 제공한다.
* 초록색은 스프링 프레임워크에서 제공하거나 개발자가 구현한다.
==== 구조이해 ====
Spring프로젝트는 보통 java단에서 4개로 세분화됩니다. Controller와 Service, DAO, DTO(VO)입니다.
먼저 Controller는 jsp로부터 데이터를 받아오거나 넘겨주고 주소를 맵핑하는 역할을 합니다.
Service는 Controller에서 받아 온 데이터를 가공하는 로직을 넣는 부분입니다. 여기서 가공된 데이터는 DAO로 넘겨지게 됩니다. DAO는 Data Access Object의 약자로 DB를 사용해 데이터를 조회하거나 조작하는 기능을 담당합니다. DAO(VO)는 Data Trasfer Obejct의 약자인데 보통 DB의 컬럼값을 맵핑하기 위해 사용되는 객체들의 집합소입니다. 각 계층간의 흐름으로 따지면
Controller <--> Service <-> DAO - DTO
위와 같이 된다고 할 수 있겠습니다.
==== Controller ====
프로젝트를 만들면 기본적으로 생성됩니다.
==== Service ====
==== mapper ====
root-context에서 설정한 mapper경로에다가 만들어주면 됩니다.
==== jsp ====