[스프링SPRING]스프링 MVC프로젝트, 주요 어노테이션(Annotation)
Spring MVC 프로젝트 생성하는 두가지 방법
- Spring Legacy Project
- Spring Starter Project(Spring Boot)
- 최대한 간결하게 실행, 배포하기 위한 방법
- WAS없이 실행가능
- 최근 유행 > 빠르게 처리가능하기에 간단한 테스트용으로 자주 사용
- 단점 : jsp뷰 별도의 설정 필요
Spring MVC
*.me주소를 직접 처리해서 사용하는 개발방법
| Spring MVC | 특징 |
|---|---|
| M odel | 데이터 처리(DB) |
| V iew | 화면 처리(jsp) |
| C ontroller | 뷰와 모델을 연결 |
MVC패턴을 사용하는 이유 두가지
- 개발자,디자이너의 영역을 분리
- 각각의 주소(URI)통한 페이지 제어하기 때문에 유지보수 쉽다.
스프링 MVC프로젝트안 src 폴더하위의 각 파일이 가진 의미
servlet-context.xml: 스프링 프로젝트에서 웹과 관련된 모든 속성을 처리root-context.xml: 스프링 프로젝트에서 웹을 제외한 모든 속성을 처리
FrontController패턴
- 기존 패턴(Page Controller)보다 더 강제적으로 페이지제어를 할 수 있게 됨
- 기존 패턴(컨트롤러 하나가 전체 로직을 제어) –위임 사용–> FrontController(일부분만 제어하는 컨트롤러 생성)
- 스프링MVC패턴에서 컨트롤러의 역할
- 페이지 요청에 따라 파라미터 처리(DTO객체, VI객체)
- 애노테이션을 사용한 처리
- 로직이 집중되게끔 해주는 역할
- 테스트 동작의 편의성
1 | ---------------------------------------------------------------- |
| Spring MVC 각 작업분류 | 작업 |
|---|---|
| 스프링MVC가 처리해주는 작업 | URI를 분석해서 알맞는 Controller 찾기 |
| Controller에 필요한 메서드 호출 | |
| Controller의 결과 데이터를 VIEW로 전달 | |
| 적절한 VIEW 페이지를 찾아서 연결 | |
| 개발자가 처리해야하는 작업 | 특정 URI에 동작하는 Controller를 설계 |
| 서비스 객체 생성 (약한결합) | |
| DAO 객체 생성 (약한결합) | |
| Controller 내부에 원하는 동작을 메서드로 설계 | |
| VIEW에서 전달받은 데이터 출력 |
스프링 웹 프로젝트

- Presentation Layer : UI담당하는 계층, 웹,모바일 구분
- view-jsp 페이지, html/css/js 페이지, Controller 페이지 처리
- Business Layer : 서비스 계층, 사용자 요구사항을 바탕으로 구현하는 계층(기능적 구현)
- 컨트롤러와 DB 직접 연결을 방지하는 역할
- Data Access Layer(=Persistence Layer) : 데이터처리 계층, DB관련 처리
- DAO객체 처리
- My(i)Batis 호출(마이바티스가 아래의 DB에 접근함)
- Data Base
주요 애노테이션(Annotation)

| 주요 애너테이션 | 특징 |
|---|---|
| @Controller | 스프링 MVC 컨트롤러 객체의미 (클래스) |
| @RequestMapping | 특정 URI에 매칭되는 클래스,메서드처리 (클래스,메서드) |
| @RequestParam | 요청정보 중에서 파라미터값을 찾을때사용(파라미터) |
| @ModelAttribute | 자동으로 해당 객체를 뷰까지 전달 (메서드,파라미터) |
| @SessionAttribute | 세션객체 안에서 정보를 유지 (클래스) |
| @Repository | DAO 객체 (클래스) |
| @Service | 서비스 객체(클래스) |
![[OS/WINDOW]배포후 서버재시작에 batch와 윈도우 스케줄러 활용하기](https://cdn.pixabay.com/photo/2012/03/04/00/50/board-22098_960_720.jpg)
![[블로그]헥소테마에서 댓글기능 facebook에서 utterances로 변경하기](https://miro.medium.com/max/1600/1*aOv6h3h_v9PQWa03zGACnw.png)