반응형
Srping MVC에서 Model , View, Controller의 사용법을 이해한다.
Model, View, Controller 를 분리한 디자인 패턴(개발자가 직접 구현해야 하는 것)
Spring MVC을 위한 필수적인 기본 설정 방법
- Maven Configuraion (pom.xml)
- Web Deployment Descriptor(web.xml)
- Spring VMC configuration
Spring MVC Archtecture란
Model
- 애플리케이션의 상태(data)를 나타낸다.
- 일반적으러 POJO로 구성된다.
- POJO(Plain Old Java Object) : 오래된 방식의 순수한 자바 객체, 다른 특정 기술에 종속적이면 POJO가 아니다.
- https://siyoon210.tistory.com/120
- Java bean의 형태이다.
POJO - (Plain Old Java Object)란 뭘까?
POJO 자바나 스프링 프레임워크를 조금이라도 공부 해본 개발자 (혹은 학생)이라면 POJO 라는 단어를 한번쯤 듣게됩니다. POJO의 정의는 사실 그렇게 어렵지 않습니다. 아래 내용은 위키 백과에 나
siyoon210.tistory.com
View
- 디스플레이 데이터 또는 프레젠테이션
- Model data의 렌더링을 담당하며, HTML output을 생성한다.
- JSP
- JSP이외에도 Thymeleaf, Groovy, Freemarker등 여러 Tempate Engine이 있다.
Controller
- View와 Model 사이의 인터페이스 역할
- Model/View 에 대한 사용자 입력 및 요청을 수신하여 그에 따라 적절한 결과를 Model에 담아 View에 전달
- Model Object와 이 Model을 화면에 출력할 View Name을 반환한다.
- Controller ->Service ->Dao ->DB
- Servlet
Spring Framework가 제공하는 class
- DispatcherServlet
- Spring Framework가 제공하는 Servlet 클래스
- 사용자의 요청을 받는다.
- Dispatcher가 받은 요청은 HandlerMapping으로 넘어간다.
- HandlerMapping
- 사용자의 요청을 처리할 Controller를 찾는다.(Controller URL Mapping)
- 하지만 controller를 실행시키진 못한다.
- 요청 url에 해당하는 Controller정보를 저장하는 table을 가진다.
- 즉, 클래스에 @RequestMapping("/url") annotation을 명시하면 해당 URL에 대한 요청이 들어왔을 때 table에 저장된 정보에 따라 해당 클래스 또는 메서드에 Mapping한다.
- 사용자의 요청을 처리할 Controller를 찾는다.(Controller URL Mapping)
- ViewResover
- Controller가 반환한 View Name(the logical names)에 prefix, suffix를 적용하여 View Object(the physical view files)를 반환한다.
- 예를들어 view name : home, prefix : /WEB-INF/views
- suffix : .jsp는 "/WEB-INF/views/home.jsp 라는 위치의 View(JSP)에 Controller에게 받은 Model을 전달한다.
- 이 후에 해당 View에서 이 Model data를 이용하여 적절한 페이지를 만들어 사용자에게 보여준다.
- Controller가 반환한 View Name(the logical names)에 prefix, suffix를 적용하여 View Object(the physical view files)를 반환한다.
기본 Project Structure
src
개발자가 작성한 Servlet 코드가 저장된다. Controller, Model, Service, Dao
src/main/java
- 개발되는 java 코드의 경로
src/main/resources
- 서버가 실행될 때 필요한 파일들의 경로
src/test/java
- 테스트 전용 경로(각 테스트 코드 작성 경로)
src/test/resources
- 테스트 시에만 사용되는 파일들의 경로
Libraries
- Servlet이나 JSP에서 추가로 사용하는 라이브러리 또는 드라이버
- jar로 압축한 파일이어야한다.
WebContent(전체 ROOT) - webapp
Deploy할 때 WebContent 디렉터리 전체가 .war로 묶어서 보내진다.
- resources
- 정적인 데이터(ex, image file, css, js, fonts)
- WEB-INF
- classes : 작성한 Java Servlet 파일이 나중에 .class로 이곳에 모두 저장된다.
- lib : 추가한 모든 라이브러리 또는 드라이버가 이곳에 저장된다.
- props : property file을 저장한다.
- spring : spring configuration files을 저장한다. (Spring과 관련된 설정 파일을 모아둔 것)
- dispathcer-servlet.xml
- apllicationContext.xml
- dao-context.xml, service-context.xml 등
- views : Controller와 매핑되는 .jsp 파일들을 저장한다. (JSP파일의 경로)
- web.xml : web application의 설정을 위한 web deployment descriptor
- DispatcherServlet, ContextLoadListener 설정
pom.xml
- maven configuration file
- 어떤 lib를 쓸지 명시한다.
반응형
'Spring > [실습] Spring FrameWork' 카테고리의 다른 글
Spring MVC FrameWork - DispatcherServlet, HandlerMapping, HanddlerAdapter, ViewResolver 구현 (0) | 2021.03.03 |
---|---|
Spring FrameWork - 스프링 MVC 기본기 (0) | 2021.03.03 |
Spring FrameWork - 톰캣 설정 (0) | 2021.03.03 |
Spring FrameWork 개념 - 초기 설정(pom.xml) (0) | 2021.03.02 |
Spring FrameWork 개념 - MVC 설명 (0) | 2021.03.02 |