Spring MVC 기본 설정
• 클라이언트의 요청을 받을 DispatcherServlet을 web.xml 파일에 설정
• 클라이언트의 요청을 처리할 컨트롤러 작성
- web.xml 세팅
∙ <servlet><servlet-mapping> : 서블릿 매핑
∙ <filter><filter-mapping> : 한글 인코딩 처리 - 컨텍스트 xml 파일
∙ 스프링의 설정정보를 작성해줄 xml 파일생성
∙ WEB-INF > spring-servlet.xml 만들기
∙ 파일명은 스프링에서 정해진 규칙대로 해당 위치에 <servlet-name>에 지정된 이름과 동일한 이름 + -servlet.xml 을 합친 이름으로 작성해야 자동으로 호출되서 정보가 로딩됨
❕ xml 파일이 여러개 있거나 경로가 WEB-INF 바로 아래가 아닌 다른 경로일경우 세팅
<servlet> 안에 <init-param> 태그를 통해 하나 이상의 xml 파일을 지정해 줄 수 있다.
이때 파일명은 위에서 말한 네이밍룰이 무시되도 된다.(이름 마음대로) - 컨트롤러 클래스 생성
test.spring.bean 패키지 /hello/
▸ HelloController - "hello.git" - /spring/hello/hello.git
▸ TestController - "test.git" - /spring/test.git
test.spring.testpsck 패키지 /test/
▸ TestBean - "hello.git" - /spring/test/helli.git - @RequestMapping()
∙ 메소드가 처리할 요청 경로를 지정함 : 경로 지정 어노테이션 : 클래스 위에 @Controller 존재해야함
∙ 적용처 : 메소드 위(메소드레벨) / 클래스 위(클래스레벨)
▸ 메소드 레벨 : 단독으로 매핑 가능
▸ 클래스 레벨 : 단독으로 매핑 가능
* 상속과 @RequestMapping
- @ResuestMapping 정보는 상속됨
- 단, 서브클래스에서 @RequestMapping을 재정의하면 수퍼클래스의 매핑 정보는 무시됨
* 요청방식
- GET
- POST
스프링 4.3 이후부터는 @GetMapping, @PostMapping
Spring MVC 구성


✔ DispatcherServlet (CEO)
• servlet 컨테이너(tocat)에서 HTTP 프로토콜을 통해 들어오는 요청을 관제하는 컨트롤러 이다.
• 이런 모든 요청을 프레젠테이션 계층의 제일 앞에 둬서 중앙집중식으로 처리해주는 프론트컨트롤러 : 창구역할
✔ 프로젝트 흐름
Server Start (웹서비스 시작)
▸web.xml 찾아 내부에 작성된 설정에 관련된 것들을 로딩
▸init-param의 xml 파일들에 설정된 것들 로딩
▸spring-servlet.xml에 component-scan 에서 @Controller 어노테이션이 붙은 클래스를 모두 스캔하여 매핑 주소들 준비
요청 > DispatcherServlet이 요청을 받아 > 요청을 매핑주소에 있는지 찾아서 해당빈 생성하고 매핑된 메소드 실행, view를 리턴 > 리턴 경로를 ViewREsolver가 받아 맞는 jsp 페이지를 찾아줌 > 응답해줌
스프링 MVC 프로젝트의 기본 구성
• 일반적으로 웹 프로젝트는 3-tier 방식으로 구성한다.
• Presentation <-> Business <-> Presistence tier
▸ Presentation tier : 화면 계층 : 화면에 보여주는 기술을 사용하는 영역 : jsp, html (view)
▸ Business tier : 비즈니스 계층 : 순수한 비즈니스 로직을 담고있는 영역 : xxxService와 같은 이름으로 사용 : Model, 자바 클래스
▸Presistence tier : 영속 계층 또는 데이터 계층 : 데이터를 어떤방식으로 보관하고 사용하는가에 대한 설계 : (Model), DAO, DB관련 (Mybatis : DB 프레임워크 사용할 예정)
[Spring MVC] <-> [Spring Core <-> [Mybatis세팅파일] <-]-> [Mybatis] <-> [DB]
'basic > spring' 카테고리의 다른 글
| [spring 04] ViewResolver, 파일 업로드&다운로드 (0) | 2021.08.03 |
|---|---|
| spring framework 03 [실습] 파라미터 수집, view로 데이터 보내기, 의존성주입 (0) | 2021.08.02 |
| [spring 03] Controller 파라미터 수집, 의존성 주입, 어노테이션종류 (0) | 2021.08.02 |
| spring 01-02 [실습] spring framework 세팅 ~ 웹페이지 띄워보기 (0) | 2021.07.30 |
| [spring 01] Framework, Spring framework (0) | 2021.07.29 |