donaricano-btn

REST API - XML, JSON(2)


1. HttpMessageConverter 설정

 - HttpMessageConverter는 Bean 정의 파일의 mvc:annotation-driven 태그에 설정한다


1) HttpMessageConverter 오브젝트를 Bean으로 정의

- 복수의 MessageConverter를 등록할 수 있다

2) JAXB를 사용해서 XML 문서와 Customer 오브젝트를 변환

3) 자동 등록되는 HttpMessageConverters

- 위에서는 명시적으로 등록했지만 몇몇 컨버터는 기본적으로 등록되어있다

- StringHttpMessageConverter : 문자열과 Http 변환

- ByteArrayHttpMessageConverter : byte 배열과 Http

- Jaxb2RootElementHttpMessageConverter : xml 문서


2. XML과 클래스의 매핑

- Controller 구현전 XML 형식을 정해두어야 한다

- XML 형식과 Customer 클래스의 매핑은 JAXB로 정의한 애노테이션으로 정의

1) xml

 

2) Customer.java

 

- 클래스에 @XmlRootElement 설정하면 나머진 JAXB가 클래스 이름과 프로퍼티 이름을 바탕으로 자동적으로 해준다


3. HTTP 메시지 수신

1). CustomerRestController.java

 

1,2) 메소드에 엑세스 하기 위한 설정이다

3) HTTP요청의 바디를 인수로 받기 위한 설정

- @RequestBody 애노테이션을 설정한 인수에는 HTTP 요청의 바디를 HttpMessageConverter로 변환한 결과가 설정된다

2). HTTP 응답 반환

- REST 에서는 원칙적으로 클라이언트는 HTTP 응답의 스테이터스 코드를 바탕으로 처리의 성공 여부를 판단

- 서버는 올바르게 스테이터스 코드반환해야만 한다

5) @ResponseStatus

- Controller 메소드가 정상종료 했을 때 어느 스테이터스 코드를 반환할지 정의 

- HttpStatus enum의 값을 지정한다

- @ResponseStatus 애노테이션을 지정하지 않아도 Controller 메소드가 정상적으로 종료되면 200을 반환

7) @ResponseBody

- 위 메소드는 OK 문자열을 반환하고 이문자는 HTTP 응답의 바디에 삽입된다

- HTTP 응답 바디에 삽입할 값이 반환한다는 것을 설정하고자 @ResponseBody를 설정




블로그 이미지

리딩리드

,
donaricano-btn

REST API - XML, JSON(1)


- REST API는 HTTP 통신을 이용해 XML과 JSON 형식의 정보를 주고 받는 웹 어플리케이션이다

- Http 요청과 HTTP 응답의 바디 부분에 XML과 JSON 형식의 정보를 설정해서 통신

1. HttpMessageConverter

- HTTP 요청/응답의 바디와 자바 오브젝트를 서로 변환

- 인터페이스이다

1) 구현 클래스

- MarshallingHttpMessageConverter(XML 형식의 http를 스프링의 O/X 매핑을 사용해 변환)

- Jaxb2RootElementHttpMessageConverter(XML형식의 HTTP를 JAXB로 변환)

- MappingJacksonHttpMessageConverter(Json형식의 HTTP 를 Jackson으로 변환)

블로그 이미지

리딩리드

,
donaricano-btn

파일업로드(fileupload)


1. beans-webmvc.xml


- 업로드 기능을 적용하기 위해 MultipartResolver 인터페이스를 구현한 클래스를 bean으로 정의해야함

- 스프링에서 Commons File Upload를 사용해서 MultipartResolver를 구현한 CommonsMultipartResolver클래스이다

- bean id는 꼭 multipartResolver로 명시해야한다

- 파일의 최대 크기등 다양한 프로퍼티가 존재한다


2. upload.jsp

 

1) form 태그 설정시 enctype에 "multipart/form-data" 지정

2) input type="file"


3. fileupload.java

 


블로그 이미지

리딩리드

,
donaricano-btn

Mybatis3+Spring(3)- Transaction of Spring


- 스프링이 제공하는 DataSourceTransactionManager를 사용

-  트랜잭션 매니저가 설정되어 있으면 스프링의 트랜잭션 기능인 선언적 트랜잭션이나 명시적 트랜잭션 이용가능

1) DataSourceTransactionManager


블로그 이미지

리딩리드

,