728x90
Spring에서 class가 view반환을 위해 사용하는 컨트롤러라 지정해주기 위한 어노테이션이 존재 한다.
@Controller와 @RestController이다.
스프링 MVC의 전형적인 어노테이션은 @Controller이다.
RestFull 웹서비스의 컨트롤인 @RestController가 추후에 등장 하였다.
@Controller
일반적인 스프링에서는 ViewResolver가 동작해 매핑되는 논리적이 View이름이 반환 됩니다.
또한 데이터를 반환 할때도 View화면의 처리와 함께 반환 됩니다.
만일 화면이 아닌 데이터를 반환 해야 하는 경우에는 @ResponseBody를 사용해야 합니다.
@Controller
@ResponseBody
public class NewController{
@RequestMapping(value="/hello")
public ModelAndView main(){
ModelAndVew mv = new ModelAndView();
mv.setViewName("/view/hello");
mv.addObject("str", "abc");
return mv;
}
}
@RestController
RestFull API에 특화된 Controller로 주로 응답 본문에 데이터가 반환되는 웹서비스에 사용됩니다.
@Controller에서는 데이터만 반환해야 할 경우 @ResponseBody 어노테이션을 선언했지만 @RestController에서는 모두 포함되어 있어 생략해도 된다.
@RestController
public class NewController{
@GetMapping("/hello")
public MainDTO main(){
MainDTO md = new MainDTO();
md.setName("hong");
md.setAge("34");
return md;
}
}
데이터는 json형태 {name:"hong", age:"34"}로 반환된다.
'웹개발 > spring && springboot' 카테고리의 다른 글
스프링 AOP의 정의 (0) | 2024.02.23 |
---|---|
[springboot]thymleaf(타임리프) (0) | 2024.02.23 |
Spring security (0) | 2024.01.30 |
스프링 컨트롤러 url매핑 정의 (0) | 2024.01.29 |
Spring과 Springboot의 차이 (0) | 2024.01.29 |