- config를 RootConfig와 ServletConfig로 나눈다
- RootConfig : dataSource, JdbcTemplate 등 애플리케이션 전체에서 쓰이는 Context
- ServletConfig :addResourceRewolver, ViewResolvers등 서블릿에서 쓰는 컨테이너
- setLoadonStartupr 값에 따라 달라짐
setLoadonStartup(1) : test-servlet까지 나옴
setLoadonStartup(-1): root 에 대해서만 나옴 ,로드가 안돼다가 요청이 오면 그때 test-servlet까지 나옴
Level 0:
- Soap기반의 프로토콜
Level 1:
- 리소스에 대한 개념 추가
Level 2:
- representation data(리소스를 어떻게 표현되어져야하는지를 분리)
Level 3:
- HATEOAS
스프링에서는 restApi를 ㄱ배라 하기위해 기본적으로 annotaiton이 추가
전달받은 요청 메세지를 우리가 원하는 형태로 변환 가능 : @RequestBody, @ResponseBody
RestController : ResponseBody Controller가 추가된거
ResponseBody 단위로
모든 메서드의 ResponseBody 다 적용
RequestBody: 파라미터단위 ResponseBody: 메서드나 클래스 단위
HTTP 메세지 컨버터 : 우리가 반환하는 것을 HTTP 메세지로 변환
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.17</version>
</dependency>
실행결과
http://localhost:8080/api/v1/customers로 들어가면 다음과 같이 json형태의 데이터를 불 수 있다.
CustomerController에서 리퀘스트에서 다음과 같이 json형태로 가져오라고 요청을 보내지만 xml로 지정되어있기 때문에 오류가 남
다시 ServeletConfig 부분을 json과 함께 쓸 수 있도록 변환
변환후 요청했을때 json형태로 요청 받은 것을 확인 할수 있음
이와 같은 방법으로 보내고자 하는 타입과 받고자 하는 타입을 다르게 지정 가능