본문 바로가기
Spring/Spring Framework

@Controller와 @RestController +@GetMapping

by chogigang 2023. 2. 19.

Controller

 

사용자의 요청을 처리하고 스프링 MVC 패턴 중 View에 객체를 넘겨주는 역할 을 합니다

 

대규모 서비스일수록 처리해야할 서비스가 많아지면서 중간 제어자 역할을 할 Controller가 생겻고

 

스프링 MVC 중 핵심은     View와  Model의  작업을 분리시키기 위 해 MVC 패턴에서 사용하고 있는

 

Controller입니다   프로토콜 처리를 하고 View에서 오는 특정 데이터 형식을 컨트롤러에서 바꿔서 모델로

 

전송을 시켜줍니다.

 

@Controller
@RequiredArgsConstructor
public class UserController {

   private final UserService userService;

   @GetMapping(value = "/users")
   public @ResponseBody ResponseEntity<User> findUser(@RequestParam("userName") String userName){
      return ResponseEntity.ok(userService.findUser(user));
   }

   @GetMapping(value = "/users/detailView")
   public String detailView(Model model, @RequestParam("userName") String userName){
      User user = userService.findUser(userName);
      model.addAttribute("user", user);
      return "/users/detailView";
   }
}

 

 

 

@RestController

 

Restful Web API를 좀 더 쉽게 만들기 위해 스프링 프레임워크 4.0에 도입된 기능입니다.

 

@Controller와 @RespnseBody를 합쳐놓은 어노테이션입니다. 클래스 이름 위에 @Controller 어노테이션을 선언하면

 

해당 클래스를 요청을 처리하는 컨트롤러로 사용합니다.@RespnseBody 어노테이션은 자바 객체를 HTTP 응답 본문의 객체로

 

변환해 클라이언트에게 전송합니다. 이를 통해 따로 html 파일을 만들지 않아도 웹 브라우저에 "Hello World"같은  문자열을 출력

 

할 수 있습니다.

 

 

 

 

@GetMapping

 

컨트롤 클래스에 @GetMapping 어노테이션을 이용해 클라이언트의 요청을 처리할 URL을 매핑합니다.

@GetMapping(value = "/users/detailView")
   public String detailView(Model model, @RequestParam("userName") String userName){
      User user = userService.findUser(userName);
      model.addAttribute("user", user);
      return "/users/detailView";
   }
}

 

'Spring > Spring Framework' 카테고리의 다른 글

스프링 프레임워크 중요한 용어  (0) 2023.02.27
의존성주입  (0) 2023.02.27
스프링 빈(Spring Bean)  (0) 2023.02.18
스프링 강한 결합, 느슨한 결합  (0) 2023.02.17
스프링 프레임워크의 기본 개념  (0) 2023.02.13