티스토리 뷰
728x90
@RestController = @Controller + @ResponseBody
아주 간단한 내용이지만 이 둘의 차이를 모르면 많은 시간을 낭비 할 수도 있다.
아래와 같이 코드를 만들었는데 /index는 잘 찾는데, /test는 찾지 못하는 상황이 발생됐다. 아래에서 /test를 못찾는 이유는 @RestController로 선언 해주어야 하는데 단순 @Controller로 선언해주었기 때문!
@Controller
public class TestController {
@RequestMapping(value="/test", method = RequestMethod.POST)
public ResponseEntity<?> test() {
return new ResponseEntity<>("test completed!", HttpStatus.OK);
}
@RequestMapping(value="/index", method = RequestMethod.GET)
public String index() {
return "index";
}
}
그럼 @RestContoller로 바꿔주면 아무런 문제가 없을까? @RestController로 바꿔주면 index 화면을 찾는게 아니라 웹 화면에 "index"라는 텍스트를 보여준다. 이미 많은 시간을 낭비했기 때문에 여기서도 또 쁘띠 좌절을 맛 봄 ㅠ 왜 나에게 이런 시련이...
그래서 찾아 본 @Controller와 @RestController의 차이는 @ResponseBody의 포함여부이다.
그래서 하나의 컨트롤러에서 api용과 mvc용을 같이 사용하고 싶으면 아래와 같이 기본 컨트롤러로 선언하고, api용으로 만든 메서드에 @ResponseBody를 붙여주면 된다😬
@Controller
public class TestController {
@ResponseBody
@RequestMapping(value="/test", method = RequestMethod.POST)
public ResponseEntity<?> test() {
return new ResponseEntity<>("test completed!", HttpStatus.OK);
}
@RequestMapping(value="/index", method = RequestMethod.GET)
public String index() {
return "index";
}
}
'백엔드 > spring' 카테고리의 다른 글
전자정부프레임워크에서 다중디비 연결하기(mariaDB, oracle) (0) | 2022.05.02 |
---|---|
전자정부프레임워크 스케쥴러 설정 (0) | 2022.04.28 |
[springboot+react+jwt] jwt 인증 후 react에서 headers에 인증값이 없는 경우 해결 방법 (0) | 2022.04.11 |
JSP에서 properties 값 사용하기 (0) | 2022.03.28 |
조건에 따라 spring scheduler 실행하기 (0) | 2022.03.03 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 전자정부프레임워크
- 아파치카프카
- mysql
- tomcat
- 도커
- 현대오토에버
- springboot
- java
- 자바스크립트
- 자바
- 톰캣
- react
- 코테
- Spring
- 자바코테
- Kubernetes
- 현대코테
- 쿠버네티스
- 코딩테스트
- 리액트
- java 코테
- 스프링
- javascript
- softeer java
- 오토에버코테
- centos
- Linux
- 현대
- Docker
- softeer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함