Notice
Recent Posts
Recent Comments
Link
개발자는 기록이 답이다
패스트캠퍼스 환급챌린지 31일차 미션 (3월 2일) : Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지 강의 후기 본문
패스트캠퍼스
패스트캠퍼스 환급챌린지 31일차 미션 (3월 2일) : Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지 강의 후기
slow-walker 2024. 3. 2. 22:00Spring 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
![](https://blog.kakaocdn.net/dn/cS4dzl/btsFn8EHx0H/M0wDQDeLMRcmCC2s2AvJdk/img.png)
- ComponentScan을통해서 bean으로등록
- RequestMapping과의 조합으로 요청을 처리
- Controller만RequestMapping을 지원하는것은 아니다!
- 어떤bean이든RequestMapping annotation이 붙으면 요청 처리
RestController
![](https://blog.kakaocdn.net/dn/cQSgYP/btsFsauUCLR/6C6Yy2d0ty16B27BcpOsrk/img.png)
• @ResponseBody를갖고있기때문에모든 handler method에 적용
※ 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. https://bit.ly/48sS29N