일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ERROR TYPE : org.apache.ibatis.binding.BindingException
- KAKAOLOGINAPI
- DB방언
- 매핑정보가없는필드
- initialDelay
- HTTPMESSAGE
- 캐쉬가능
- fixedDelay
- 멱등활용
- JPA
- 김영한JPA
- HTTP3
- 데이터베이스 방언
- 네이버로그인API
- RFC723x
- anyMatch
- gitrevert
- Invalid bound statement (not found)
- gitreset
- 네이버 연결된 서비스
- 자바ORM표준프로그래밍
- 무상태프로토콜
- Transaction not successfully started
- Git
- org.apache.ibatis.binding.BindingException
- http
- @Entity
- SpringBoot
- @Table
- hibernate.dialect
Archives
- Today
- Total
twocowsong
@RestController @Controller 본문
@Slf4j
@Controller
public class Test1Controller {
@GetMapping("/main")
public String init() {
return "/index";
}
}
단순 컨트롤러입니다. @Controller로 해당 클래스를 등록해야지 Url을 맵핑이 원할하게 작동됩니다.
그렇지만 우리는 일반 컨트롤러와 API컨트롤러를 분리하여 작업하기도 합니다.
일반 컨트롤러와 API컨트롤러의 가장 큰차이점은 리턴 방식이 다르다는것!
일반컨트롤러는 viewresolver에 의해 html페이지가 리턴되어버립니다.
@Slf4j
@RestController
public class Test1Controller {
@GetMapping("/main")
public String init() {
return "/index";
}
}
하지만 restController는 문자열 자체를 내린다거나 객체로 리턴을하게되면 json방식으로 데이터를 내려줍니다.
@RestController를 자세하게 보면 아래와 같습니다.
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
@AliasFor(
annotation = Controller.class
)
String value() default "";
}
인터페이스로 구현된 RestController.
@Controller, @ResponseBody를 같이 사용하여 RestController를 구현하고있습니다.
@ResponseBody는 메소드에서도 사용이가능하며 아래와같이 일반 Controller에서 메소드마다 @ResponseBody를 사용하여 문자열 자체를 내릴수있습니다.
@Slf4j
@Controller
public class Test1Controller {
@GetMapping("/main")
@ResponseBody
public String init() {
return "/index";
}
}
@RestController는 @Controller + @ResponseBody 이다 라고 생각해주시면됩니다.
여담 )
@Slf4j
@Controller
public class Test1Controller {
@GetMapping("/main")
@ResponseBody
public Dto init() {
Dto dto = new Dto();
dto.setValue1("A");
dto.setValue2("B");
return dto;
}
}
객체를 생성해서 내리면 아래와같이 스프링이 알아서 JSON으로 잘포장해줍니다.. 참편하죠?
'IT > SpringBoot' 카테고리의 다른 글
Spring Boot AOP (0) | 2022.03.22 |
---|---|
Environment (0) | 2022.02.02 |
@Scheduled (0) | 2022.01.23 |
Redirect, forward, RedirectAttributes (0) | 2022.01.23 |
@ModelAttribute, @PathVariable, @RequestBody (0) | 2022.01.18 |