Spring MVC 프로젝트 구조 공부하기
Java/Spring 2018. 4. 1. 18:25 |Spring MVC 패턴
MVC는 Model-View-Controller의 약자이며 애플리케이션을 세가지 역할로 구분하는 패턴이다. User가 Controller를 조작하면 Controller는 Model을 통해서 데이터를 가져오고 그 정보를 바탕으로 View에서 사용자에게 전달하게 된다.
출처 : 생활코딩
Model >> 비즈니스 로직과 사용되는 데이터를 다루는 영역 ex) Service, DAO
View >> 최종 사용자에게 보여줄 프리젠테이션 로직 ex) jsp, asp, php
Controller >>> 흐름을 관리, 모델과 뷰의 조정 역할을 함 ex) Controller
출처 : http://addio3305.tistory.com/41
MVC 프로젝트 구조 분석
Java 개발소스 (src/main/java)
Controller, Mapper, DTO, Service, DAO...와 같은 모든 자바 소스코드들이 저장되는 곳
Spring 설정 파일 (src/main/webapp/WEB-INF/spring)
servlet-context.xml
- <annotation-driven />
@RequestMapping를 사용할 수 있또록 하고 그 안에 지정된 URL로 브라우저의 요청 URL이 매핑되게 된다.
- <resources mapping="/res/**" location="/resources/" />
- <beans:bean class=
"org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
외부인 브라우져에서 직접 접근이 불가능하게 되어있다. home.jsp를 실행시키면 404 error가 발생하게 된다.
그 이유는 주소창에 http://localhost:8080/WEB-INF/views/home.jsp로 연결되는데 바로 WEB-INF로 접근하려고 하면서 error가 발생하게 된다.
따라서 스프링에서는 직접 접근하지 않고 다른 방법으로 접근 할 수 있도록 한다.
최종 정리 진행 순서
1. 클라이언트 요청( /, root 페이지 요청)
2. web.xml에서 dispatcherServlet가 클라이언트 요청을 핸들링
3. servlet-context.xml에서 해당 클래스의 웹요청을 처리하는 컨트롤러를 사용(HandlerMapping으로 Controller를 검색)
4. 해당 Controller가 요청을 처리후, home을 리턴
5. View에 출력
출처 : http://all-record.tistory.com/165
web.xml
'Java > Spring' 카테고리의 다른 글
Lombok 설치 및 사용법 (Spring Maven) (0) | 2018.04.06 |
---|---|
SpringMVC CRUD pom.xml에서 dependency 추가를 위한 작업 (0) | 2018.03.23 |
CRUD (0) | 2018.03.08 |
JUnit 사용하기 (Spring Maven) (0) | 2018.03.08 |
매소드 이름짓기 - MVC (0) | 2018.03.07 |