🤯TIL/Spring

[코배스] Part 2. 스프링 MVC 설정

Dorothy_YANG 2022. 11. 15. 21:24
728x90

목차

  1. 스프링 MVC의 기본 구조
  2. 스프링 MVC의 Controller

1. 스프링 MVC의 기본 구조

  • Model-View-Controller
    - 대부분의 서블릿 기반 프레임워크들이 사용하는 방식 
    - 데이터와 처리, 화면을 분리하는 방식 

 

출처 : 위키피디아

 


  • 스프링 MVC의 기본 사상 
    - 서블릿 기반이긴 하지만 한 단계 더 추상화된 수준의 개발 지향 
    - 서블릿 API없이도 개발이 가능한 수준 

출처 : 코배스 PPT


2. 스프링 MVC의 Controller

  • Controller
    - HttpServletRequest, HttpServletResponse를 거의 사용할 필요 없이 필요한 기능 구현
    - 다양한 타입의 파라미터 처리, 다양한 타입의 리턴 타입 사용 가능
    - GET 방식, POST 방식 등 전송 방식에 대한 처리를 어노테이션으로 처리 가능
    - 상속/인터페이스 방식 대신에 어노테이션만으로도 필요한 설정 가능 
@Controller 해당 클래스의 인스턴스를 스프링의 빈으로 등록하고 컨트롤러로 사용
<component-scan>과 같이 활용 
** 파라미터가 자동으로 수집된다.

@RequestMapping 특정한 URI에 대한 처리를 해당 컨트롤러나 메서드에서 처리
현재 클래스의 모든 메서드들의 기본적인 URL 경로
스프링 4.3 전까지는 @RequestMapping( method =‘get’) 방식으로 사용
스프링 4.3이후에는 @GetMapping, @PostMapping등으로 간단히 표현 가능 

  • 추가 내용
(Model model)
데이터 전달자
Model 객체는 JSP에 컨트롤러에서 생성된 데이터를 담아서 전달하는 역할을 하는 존재
모델 2 방식에서 사용하는 request.setAttribute( )와 유사한 역할
@ModelAttribute 컨트롤러에서 메서드의 파라미터는 기본자료형을 제외한 객체형 타입은 다시 화면으로 전달
@ModelAttribute는 명시적으로 화면에 전달되도록 지정 
 return "redirect:/"; 화면에 한번만 전달되는 파라미터를 처리하는 용도 
내부적으로 HttpSession객체에 담아서 한번만 사용되고, 폐기 
ResponseEntity<> HTTP헤더 정보와 추가적인 데이터를 전달할 때 사용 
728x90