ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] REST JSON Response 예제
    Spring/기타 2019. 5. 26. 18:56
    반응형

    1.

    BeanNameViewResolver, 

    MappingJackson2JsonView 적용

     

    BeanNameViewResolver 클래스는 뷰 이름과 동일한 이름을 갖는 빈을 뷰 객체로 사용합니다. BeanNameViewResolver는 주로 커스텀 View 클래스를 뷰로 사용해야 하는 경우 사용됩니다. 스프링4 버전은 자바 객체를 JSON으로 변환해서 보여주는 뷰 구현 클래스인 MappingJackson2JsonView를 제공하고 있습니다. 컨트롤러에서는 다음과 같이 뷰 이름으로 MappingJackson2JsonVie 타입의 빈을 설정해주면 됩니다. MappingJackson2JsonView는 모델에 저장된 모든 객체를 JSON 형식으로 변환해줍니다. MappingJackson2JsonView는 내부적으로 Jackson 라이브러리의 ObjectMapper를 이용해서 자바 객체를 JSON 형식으로 변환합니다.

    1_1) 

    servlet-context.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd">
     
        <context:component-scan base-package="com.tychejin.springrest" />
        <mvc:annotation-driven />
     
        <!-- BeanNameViewResolver 설정-->
        <bean id="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
        
        <!-- MappingJackson2JsonView 설정 -->
        <bean id="jsonTemplate" class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"/>
        
    </beans>
    cs

     

    1_2) 

    RESTConfiguration.java

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    package com.tychejin.springrest.config;
     
    public class RESTConfiguration {
     
        @Bean
        public View jsonTemplate() {
            MappingJackson2JsonView view = new MappingJackson2JsonView();
            view.setPrettyPrint(true);
            return view;
        }
     
        @Bean
        public ViewResolver viewResolver() {
            return new BeanNameViewResolver();
        }
    }
    cs

     

    2.Jackson 라이브러리 추가

     Java 객체를 JSON으로 변환하기 위해서는 Jackson 라이브러를 추가해야합니다.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.tychejin</groupId>
        <artifactId>springrest</artifactId>
        <name>springrest</name>
        <packaging>war</packaging>
        <version>1.0.0-BUILD-SNAPSHOT</version>
        <properties>
            <java-version>1.8</java-version>
            <org.springframework-version>4.1.4.RELEASE</org.springframework-version>    
        </properties>
        <dependencies>
            <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>4.12</version>
              <scope>test</scope>
            </dependency>
             
            <!-- Spring -->             
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${org.springframework-version}</version>
            </dependency>
         
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${org.springframework-version}</version>
            </dependency>
             
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${org.springframework-version}</version>
            </dependency>       
            
            <!-- Jackson -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.4.1</version>
            </dependency>
     
        </dependencies>
        <build>
            <finalName>springrest</finalName>
        </build>
    </project>
     
    cs

     

    3.Controller 생성

    EmployeeRestController02.java

    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
    package com.tychejin.springrest.controller;
     
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
     
    import com.tychejin.springrest.common.CommonUtil;
    import com.tychejin.springrest.model.Employees;
     
    @Controller
    public class EmployeeRestController02 {
     
        public Employees getEmployeeList() {
     
            Employees employees = new Employees();
     
            employees = CommonUtil.setEmployees(00);
     
            return employees;
        }
     
        @RequestMapping(value = "/getEmployees02")
        public String getAllEmployeesJSON(Model model) {
            model.addAttribute("Result", getEmployeeList());
            return "jsonTemplate";
        }
    }
    cs

     

    4.작성한 API 호출

     http://localhost:8080/getEmployees02

     

    반응형

    'Spring > 기타' 카테고리의 다른 글

    [Spring] REST XML Response 예제  (0) 2019.05.25

    댓글

Designed by Tistory.