개발자는 기록이 답이다

패스트캠퍼스 환급챌린지 31일차 미션 (3월 2일) :  Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지 강의 후기 본문

패스트캠퍼스

패스트캠퍼스 환급챌린지 31일차 미션 (3월 2일) :  Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지 강의 후기

slow-walker 2024. 3. 2. 22:00

Spring WebFlux Annotated Controllers: 어노테이션 기반 컨트롤러


Spring WebFlux에서는 전통적인 서블릿 기반의 어노테이션 컨트롤러와 마찬가지로 어노테이션 기반 컨트롤러를 사용하여 웹 애플리케이션을 개발할 수 있습니다. 이러한 어노테이션 기반 컨트롤러를 사용하면 비동기 및 리액티브한 웹 애플리케이션을 쉽게 개발할 수 있습니다.

1. 어노테이션 기반 컨트롤러의 특징

  • @Controller 어노테이션: Spring WebFlux에서도 컨트롤러 클래스에 @Controller 어노테이션을 사용하여 해당 클래스를 컨트롤러로 지정할 수 있습니다.
  • @RequestMapping 어노테이션: URL 패턴 및 HTTP 메서드에 대한 매핑을 지정할 수 있는 @RequestMapping 어노테이션을 사용하여 핸들러 메서드를 정의합니다.
  • @PathVariable 및 @RequestParam 등: 경로 변수나 요청 파라미터를 핸들러 메서드의 인자로 받을 수 있는 어노테이션들을 사용하여 요청 정보를 처리합니다.

 

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class AnnotatedController {

    @GetMapping("/greet")
    public String greet(@RequestParam(name = "name", defaultValue = "Guest") String name, Model model) {
        model.addAttribute("name", name);
        return "greet";
    }

    @GetMapping("/user/{id}")
    public String getUser(@PathVariable Long id, Model model) {
        // 사용자 정보 조회 및 모델에 추가
        model.addAttribute("userId", id);
        return "user";
    }
}

위의 코드에서 AnnotatedController 클래스는 @Controller 어노테이션을 사용하여 컨트롤러로 지정되었습니다. @GetMapping 어노테이션을 사용하여 각각 /greet 및 /user/{id}에 대한 핸들러 메서드를 정의하고 있습니다.

 

Controller

  • ComponentScan을통해서 bean으로등록
  • RequestMapping과의 조으로 요청을 처리
  • ControllerRequestMapping을 지원하는은 아니다!
  • bean이든RequestMapping annotation으면 요청 처리

 

RestController

• @ResponseBody를갖고있기때문에모든 handler method에 적용

 

 


※ 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. https://bit.ly/48sS29N