스프링 MVC에서 빠질 수 없는 애노테이션이 바로 @Controller이다.
@Controller는 주로 HTML과 같은 뷰를 렌더링 할때 사용된다.
@Controller
public class MyController {
@RequestMapping("/greeting")
public String greeting(Model model) {
model.addAttribute("message", "Hello, World!");
return "greeting"; // greeting.jsp 또는 greeting.html과 같이 뷰를 찾아 렌더링
}
}
하지만 뷰를 렌더링하는것 이 아닌 Data(또는 객체)를 반환해야 하는 경우도 존재한다.
이럴때는 @ResponseBody 애노테이션을 통해 응답값을 JSON형태의 데이터로 변환 할 수 있다.
@Controller
public class MyController {
@RequestMapping("/api/greeting")
@ResponseBody
public Greeting apiGreeting() {
return new Greeting("Hello, World!"); // JSON/XML로 직접 반환
}
}
@RestController란?
@RestController는 @Controller와 @ResponseBody가 합쳐진 애노테이션이라고 생각하면 편하다.
뷰를 렌더링 해주는 컨트롤러에서는 @Controller를 사용하여 뷰를 반환해주면 되고,
상품정보 조회, 회원정보 조회은 Rest API를 개발할때는 응답값을 JSON데이터로 변환하여 반환해줘야 하므로
@RestController를 넣어주면 된다.
@RestController
public class MyRestController {
@RequestMapping("/api/greeting")
public Greeting apiGreeting() {
return new Greeting("Hello, World!"); // JSON/XML로 직접 반환
}
}
'BackEnd > spring' 카테고리의 다른 글
WebSocket + STOMP로 채팅 구현하기 (0) | 2025.05.30 |
---|---|
Spring Webocket을 이용한 실시간 채팅 구현(+ JWT 인증) (0) | 2025.05.14 |
SpringBean (1) | 2025.02.11 |
회원가입 로그인 구현 (1) | 2024.08.19 |
BeanValidation-Form 전송 객체 분리 (1) | 2024.08.05 |