Spring

GsonHttpMessageConverter

top2blue 2016. 9. 2. 15:36

<dependency>

    <groupId>com.google.code.gson</groupId>

    <artifactId>gson</artifactId>

    <version>2.7</version>

</dependency>

--------------------------------------------

<beans:bean

class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">

<beans:property name="messageConverters">

<beans:list>

<beans:ref bean="jsonMessageConverter" />

</beans:list>

</beans:property>

</beans:bean>

<beans:bean id="jsonMessageConverter"

class="org.springframework.http.converter.json.GsonHttpMessageConverter"/>

--------------------------------------------------------------------------------------------------------------

@RequestMapping(value="/member", produces="application/json;charset=utf-8")

@ResponseBody

public MemberVO member(){

return new MemberVO(1, "admin", "123456", "최고관리자");

}


@RequestMapping(value="/memberList", produces="application/json;charset=utf-8")

@ResponseBody

public MemberList memberList(){

List<MemberVO> list = new ArrayList<MemberVO>();

for(int i=0;i<10;i++) list.add(new MemberVO(i, "admin", "123456", "최고관리자"));

MemberList members = new MemberList();

members.setList(list);

return members;

}


@RequestMapping(value="/array", produces="application/json;charset=utf-8")

@ResponseBody

public int[] array(){

return new int[]{1,2,3,4,5,6,7,8,9,10};

}


@RequestMapping(value="/map", produces="application/json;charset=utf-8")

@ResponseBody

public Map<String, Integer> map(){

Map<String, Integer> map = new HashMap<String, Integer>();

map.put("currentPage", 11);

map.put("pageSize", 10);

map.put("blockSize", 5);

map.put("현재페이지", 11);

return map;

}


- com.fasterxml.jackson은 org.codehaus.jackson를 승계한 프로젝트

- com.fasterxml.jackson은 MappingJackson2HttpMessageConverter와 바인딩

- org.codehaus.jackson은 MappingJacksonHttpMessageConverter와 바인딩

- Spring 4부터 GsonHttpMessageConveter가 내장

- Spring 4부터 MappingJacksonHttpMessage는 없어짐