본문 바로가기
Spring

Spring Annotation 1. @Controller

by Status Code 2023. 4. 19.

Spring의 @Controller 어노테이션은 스프링 MVC 프레임워크에서 사용되는 어노테이션 중 하나입니다. @Controller 어노테이션은 클래스 레벨에서 사용되며, 해당 클래스가 스프링 MVC에서 컨트롤러 역할을 한다는 것을 나타냅니다. 컨트롤러는 HTTP 요청에 대한 응답을 생성하고 전송하는 작업을 담당합니다.

다음은 @Controller 어노테이션을 사용한 간단한 예제입니다.

@Controller
public class HomeController {

   @RequestMapping("/")
   public String home() {
      return "home";
   }

}

위의 코드에서 HomeController 클래스는 @Controller 어노테이션을 사용하여 스프링 MVC 컨트롤러임을 나타냅니다. @RequestMapping("/") 어노테이션은 이 클래스의 home() 메서드가 / 경로로 들어오는 HTTP GET 요청에 응답한다는 것을 나타냅니다. home() 메서드는 "home" 문자열을 반환합니다.

보시다시피, @Controller 어노테이션을 사용하여 스프링 컨트롤러를 정의하면 해당 클래스의 인스턴스가 스프링 컨테이너에 등록되며, 이 인스턴스는 요청에 대한 처리를 수행합니다.

@Controller 어노테이션은 @RestController 어노테이션과 함께 사용될 수도 있습니다. @RestController 어노테이션은 컨트롤러에서 반환하는 값이 뷰를 통해 렌더링되지 않고, HTTP 응답 본문으로 직접 반환됨을 나타냅니다.

다음은 @Controller와 @RestController 어노테이션을 사용한 예제입니다.

@Controller
public class HomeController {

   @RequestMapping("/")
   public String home() {
      return "home";
   }

}

@RestController
public class RestfulController {

   @GetMapping("/api/hello")
   public String hello() {
      return "Hello, World!";
   }

}

위의 코드에서 HomeController 클래스는 @Controller 어노테이션을 사용하여 스프링 MVC 컨트롤러를 정의하고, RestfulController 클래스는 @RestController 어노테이션을 사용하여 RESTful 웹 서비스의 컨트롤러를 정의합니다. RestfulController 클래스의 hello() 메서드는 /api/hello 경로로 들어오는 HTTP GET 요청에 응답하며, "Hello, World!" 문자열을 반환합니다. 이 문자열은 뷰를 통해 렌더링되지 않고, HTTP 응답 본문으로 직접 반환됩니다.

'Spring' 카테고리의 다른 글

Spring Annotation 6. @Autowired  (0) 2023.04.19
Spring Annotation 5. @RequestParam  (0) 2023.04.19
Spring Annotation 4. @PathVariable  (0) 2023.04.19
Spring Annotation 3. @ResponseBody  (0) 2023.04.19
Spring Annotation 2. @RequestMapping  (0) 2023.04.19

댓글