[스프링SPRING]스프링 MVC프로젝트, 주요 어노테이션(Annotation)

[스프링SPRING]스프링 MVC프로젝트, 주요 어노테이션(Annotation)

Spring MVC 프로젝트 생성하는 두가지 방법

  1. Spring Legacy Project
    • WAS-tomcat 경험과 model2 경험 필요
    • 상대적으로 설정하는 것이 어렵다.
    • 실무에서 기존 프로젝트를 이해하기 쉽다 (실무에서 주로 사용하기때문에)
    • 모든 버전의 스프링을 사용가능
    • 단점 : 리소스가 많이 필요하다.
    • Create a project > Spring Legacy Project > Spring MVC project 클릭하여 생성
  2. Spring Starter Project(Spring Boot)
    • 최대한 간결하게 실행, 배포하기 위한 방법
    • WAS없이 실행가능
    • 최근 유행 > 빠르게 처리가능하기에 간단한 테스트용으로 자주 사용
    • 단점 : jsp뷰 별도의 설정 필요




Spring MVC

  • *.me 주소를 직접 처리해서 사용하는 개발방법
Spring MVC 특징
M odel 데이터 처리(DB)
V iew 화면 처리(jsp)
C ontroller 뷰와 모델을 연결




MVC패턴을 사용하는 이유 두가지

  1. 개발자,디자이너의 영역을 분리
  2. 각각의 주소(URI)통한 페이지 제어하기 때문에 유지보수 쉽다.




스프링 MVC프로젝트안 src 폴더하위의 각 파일이 가진 의미

  • servlet-context.xml : 스프링 프로젝트에서 웹과 관련된 모든 속성을 처리
  • root-context.xml : 스프링 프로젝트에서 웹을 제외한 모든 속성을 처리




FrontController패턴

https://nesoy.github.io/articles/2017-02/Front-Controller

  • 기존 패턴(Page Controller)보다 더 강제적으로 페이지제어를 할 수 있게 됨
  • 기존 패턴(컨트롤러 하나가 전체 로직을 제어) –위임 사용–> FrontController(일부분만 제어하는 컨트롤러 생성)
  • 스프링MVC패턴에서 컨트롤러의 역할
    1. 페이지 요청에 따라 파라미터 처리(DTO객체, VI객체)
    2. 애노테이션을 사용한 처리
    3. 로직이 집중되게끔 해주는 역할
    4. 테스트 동작의 편의성
1
2
3
4
5
6
7
----------------------------------------------------------------   	
주소요청 -> FC <-> C <-> Service <-> DAO <->MyBatis <-> MySQL

|

V
----------------------------------------------------------------
Spring MVC 각 작업분류 작업
스프링MVC가 처리해주는 작업 URI를 분석해서 알맞는 Controller 찾기
Controller에 필요한 메서드 호출
Controller의 결과 데이터를 VIEW로 전달
적절한 VIEW 페이지를 찾아서 연결
개발자가 처리해야하는 작업 특정 URI에 동작하는 Controller를 설계
서비스 객체 생성 (약한결합)
DAO 객체 생성 (약한결합)
Controller 내부에 원하는 동작을 메서드로 설계
VIEW에서 전달받은 데이터 출력




스프링 웹 프로젝트

https://dev.to/urunov/truly-there-is-no-difference-in-implementation-integrating-spring-with-jersey-and-integrating-jersey-with-spring-m2k

  • Presentation Layer : UI담당하는 계층, 웹,모바일 구분
    • view-jsp 페이지, html/css/js 페이지, Controller 페이지 처리
  • Business Layer : 서비스 계층, 사용자 요구사항을 바탕으로 구현하는 계층(기능적 구현)
    • 컨트롤러와 DB 직접 연결을 방지하는 역할
  • Data Access Layer(=Persistence Layer) : 데이터처리 계층, DB관련 처리
  • Data Base




주요 애노테이션(Annotation)

https://blog.naver.com/wwwkang8/220994093310

주요 애너테이션 특징
@Controller 스프링 MVC 컨트롤러 객체의미 (클래스)
@RequestMapping 특정 URI에 매칭되는 클래스,메서드처리 (클래스,메서드)
@RequestParam 요청정보 중에서 파라미터값을 찾을때사용(파라미터)
@ModelAttribute 자동으로 해당 객체를 뷰까지 전달 (메서드,파라미터)
@SessionAttribute 세션객체 안에서 정보를 유지 (클래스)
@Repository DAO 객체 (클래스)
@Service 서비스 객체(클래스)