Corgi [Spring] 스프링 MVC에서 @Controller 어노테이션의 활용
본문 바로가기
코딩/스프링(Spring)

[Spring] 스프링 MVC에서 @Controller 어노테이션의 활용

by 짱아아빠 2023. 6. 9.
반응형

안녕하세요! 오늘은 스프링 MVC에서 사용되는 @Controller 어노테이션에 대해 알아보고자 합니다. @Controller 어노테이션은 스프링 프레임워크에서 컨트롤러 역할을 하는 클래스에 지정되며, 클라이언트의 요청을 처리하고 응답을 생성하는 데 사용됩니다.

1. @Controller 어노테이션의 역할
   - @Controller 어노테이션은 해당 클래스가 웹 애플리케이션의 컨트롤러임을 나타냅니다.
   - 스프링 컨테이너는 @Controller 어노테이션이 지정된 클래스를 빈으로 등록하고, 요청을 해당 컨트롤러에 매핑하여 처리합니다.
   - @Controller 어노테이션은 스프링 MVC의 핵심 요소 중 하나로, 클라이언트의 요청을 처리하는 비즈니스 로직과 뷰를 결합하여 전체적인 웹 애플리케이션의 동작을 제어합니다.

2. @Controller 어노테이션의 사용 방법
   - @Controller 어노테이션이 지정된 클래스는 일반적으로 HTTP 요청을 처리하기 위한 메소드들을 포함합니다.
   - 각 메소드는 @RequestMapping 어노테이션과 함께 사용하여 특정 URL 패턴에 대한 처리를 정의합니다.
   - @RequestMapping 어노테이션을 사용하여 요청 URL과 해당 메소드를 매핑시키고, 메소드는 요청을 처리하고 필요한 로직을 수행한 후에 응답을 생성합니다.
   - 컨트롤러 메소드에서는 ModelAndView, Model, ResponseEntity 등을 반환하여 응답 데이터와 뷰 정보를 제공합니다.

3. @Controller 어노테이션의 추가 기능
   - @Controller 어노테이션은 기본적인 요청 처리 외에도 다양한 기능을 제공합니다.
   - @RequestMapping 어노테이션의 다양한 속성을 사용하여 URL 매핑 방식을 세밀하게 제어할 수 있습니다.
   - @PathVariable 어노테이션을 사용하여 경로 변수를 추출하고 활용할 수 있습니다.
   - @RequestParam 어노테이션을 사용하여 요청 파라미터를 추출하고 활용할 수 있습니다.
   - @ModelAttribute 어노테이션을 사용하여 요청 데이터를 객체에 바인딩하고, 자동으로 모델에 추가할 수 있습니다.

 

반응형


4. @Controller 어노테이션의 예시
   - 아래는 @Controller 어노테이션을 사용한 간단한 예시입니다.

   @Controller
   @RequestMapping("/products")
   public class ProductController {

       @Autowired
       private ProductService productService;

       @RequestMapping("/{id}")
       public ModelAndView getProduct(@PathVariable("id") int id) {
           Product product = productService.getProductById(id);
           ModelAndView modelAndView = new ModelAndView("productView");
           modelAndView.addObject("product", product);
           return modelAndView;
       }

       @RequestMapping("/list")
       public ModelAndView getAllProducts() {
           List<Product> products = productService.getAllProducts();
           ModelAndView modelAndView = new ModelAndView("productListView");
           modelAndView.addObject("products", products);
           return modelAndView;
       }

       
   }


   

   위의 예시에서는 "/products"로 시작하는 URL에 대한 요청을 처리하기 위한 컨트롤러입니다. @RequestMapping 어노테이션을 사용하여 각 요청 URL과 해당 메소드를 매핑하고, ProductService를 활용하여 비즈니스 로직을 수행합니다.이렇게, @Controller 어노테이션은 스프링 MVC에서 컨트롤러 역할을 하는 클래스를 표시하는 중요한 어노테이션입니다. @Controller 어노테이션을 사용하여 웹 애플리케이션의 요청 처리를 단순화하고, 비즈니스 로직과 뷰를 효과적으로 조합하여 다양한 기능을 구현할 수 있습니다.

반응형

댓글