Spring Framrwork

[Spring Boot] JsonView 설정

gregorio 2018. 8. 14. 12:07

Spring Boot에서 JsonView를 bean으로 설정하는 방법이다.


Spring MVC에서는 View를 정의하기 위해 XMLViewResolver를 사용하여 bean의 위치를 정의하고, View 정의하는 파일에 JsonView를 설정한다.



■ mvc-servlet-context.xml

  <!-- Set XML View Resolver -->

<bean class="org.springframework.web.servlet.view.XmlViewResolver">

<property name="location" value="classpath:spring/context-views.xml"/>

<property name="order" value="1" />

</bean>



■ context-views.xml


<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" /> 


위와 같이 정의한 후 ModelAndView를 사용 시 setViewName 메소드에 Parameter로 jsonView를 정의하면 데이터를 JSON으로 변환하여 클라이언트에 전송한다.



Spring Boot에서는 XML을 사용하지 않을 경우에는 MappingJackson2JsonView를 bean으로 정의하면 사용할 수 있다.



■ WebConfg.java


import java.util.ArrayList;

import java.util.List;

import java.util.Locale;


import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.web.servlet.FilterRegistrationBean;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.context.support.ReloadableResourceBundleMessageSource;

import org.springframework.core.Ordered;

import org.springframework.web.servlet.LocaleResolver;

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;

import org.springframework.web.servlet.i18n.SessionLocaleResolver;

import org.springframework.web.servlet.view.json.MappingJackson2JsonView;


import dymn.demo.filter.ABCFilter;

import dymn.demo.interceptor.SessionInterceptor;

import dymn.demo.util.PropertiesUtil;


@Configuration

public class WebConfig implements WebMvcConfigurer {

@Bean

public MappingJackson2JsonView jsonView() {

return new MappingJackson2JsonView();

}

}