>Java >java지도 시간 >SpringBoot가 Dozer 매핑 프레임워크를 통합하는 방법

SpringBoot가 Dozer 매핑 프레임워크를 통합하는 방법

WBOY
WBOY앞으로
2023-05-11 21:58:04898검색

1. Dozer 소개

Dozer는 한 객체에서 다른 객체로 데이터를 반복적으로 복사하는 Java Bean 간 매퍼입니다. Dozer는 두 개체 간의 속성을 변환하는 데 사용되는 도구입니다. 이 도구를 사용하면 한 개체의 모든 속성 값을 다른 개체로 전송할 때 더 이상 set 및 get 메서드에 대한 반복 호출을 작성할 필요가 없습니다.

가장 중요한 점은 Dozer가 데이터베이스의 내부 도메인 개체가 외부 프레젠테이션 계층이나 외부 소비자에게 유출되지 않도록 보장하고 도메인 개체를 외부 API 호출에 매핑하거나 그 반대로 매핑할 수도 있다는 것입니다.

2. 매핑 프레임워크인 Dozer를 사용하는 이유

매핑 프레임워크는 계층화된 아키텍처에서 중요한 역할을 합니다. 특정 데이터 개체에 대한 변경 사항을 캡슐화하고 이러한 개체를 다른 레이어(예: 외부 서비스 데이터 개체, 도메인 개체, 데이터)에 전파할 수 있습니다. 전송 객체, 내부 서비스 데이터 객체)를 생성하여 추상화 계층을 생성합니다. 매핑 프레임워크는 한 데이터 개체에서 다른 데이터 개체로 데이터 매핑을 담당하는 매퍼 유형 클래스에 사용하기에 이상적입니다.

분산 시스템 아키텍처의 경우 부작용은 서로 다른 시스템 간에 도메인 개체를 전송하는 것입니다. 글쎄, 우리는 내부 도메인 개체가 외부에 노출되는 것을 원하지 않으며 외부 도메인 개체가 우리 시스템에 침투하는 것을 원하지 않습니다.

데이터 개체 간 매핑은 전통적으로 개체 간에 데이터를 복사하는 손으로 코딩한 값 개체 어셈블러(또는 변환기)를 통해 해결되었습니다. 강력하고 다재다능하며 유연하고 재사용 및 구성이 가능한 오픈 소스 매핑 프레임워크인 Dozer는 개발자가 맞춤형 매퍼 프레임워크를 개발하는 데 드는 시간과 비용을 절약해 줍니다.

3. Dozer 매핑 프레임워크 사용

Dozer의 Maven 좌표:

<dependency>
    <groupId>com.github.dozermapper</groupId>
    <artifactId>dozer-core</artifactId>
    <version>6.5.0</version>
</dependency>

사용을 단순화하기 위해 Dozer는 Maven 좌표가 다음과 같은 스타터도 제공합니다.

<dependency>
    <groupId>com.github.dozermapper</groupId>
    <artifactId>dozer-spring-boot-starter</artifactId>
    <version>6.5.0</version>
</dependency>

springboot 프로젝트에서 dozer 매핑 프레임워크 사용을 시작해 보겠습니다. . 프로젝트의 디렉터리 구조는 다음과 같습니다.

SpringBoot가 Dozer 매핑 프레임워크를 통합하는 방법

첫 번째 단계는 maven 프로젝트 dozer_demo를 만들고 pom을 구성하는 것입니다.

세 번째 단계에서는 resources/에 dozer의 전역 구성 파일 global.dozer.xml을 만듭니다. dozer/ 디렉터리

<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.hzz</groupId>
    <artifactId>dozer_demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath/>
    </parent>
    <dependencies>
        <dependency>
            <groupId>com.github.dozermapper</groupId>
            <artifactId>dozer-spring-boot-starter</artifactId>
            <version>6.5.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
</project>

네 번째 단계, resources/dozer/ 디렉터리에 dozer 매핑 파일 biz.dozer.xml 생성

package com.hzz.dto;
import lombok.Data;
@Data
public class UserDTO {
    private String userId;
    private String userName;
    private int userAge;
    private String address;
    private String birthday;
}

다섯 번째 단계, application.yml 파일 작성

dozer:

mappingFiles:

- classpath:dozer/global.dozer.xml

- classpath:dozer/biz.dozer.xml

6단계, 메인 시작 클래스 DozerApp 생성

package com.hzz.entity;
import lombok.Data;
import java.util.Date;
@Data
public class UserEntity {
    private String id;
    private String name;
    private int age;
    private String address;
    private Date birthday;
}

7단계, 단위 테스트 작성 DozerTest
<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns="http://dozermapper.github.io/schema/bean-mapping"
          xsi:schemaLocation="http://dozermapper.github.io/schema/bean-mapping
                              http://dozermapper.github.io/schema/bean-mapping.xsd">
    <!--全局配置:<date-format>表示日期格式-->
    <configuration>
        <date-format>yyyy-MM-dd</date-format>
    </configuration>
</mappings>

위 내용은 SpringBoot가 Dozer 매핑 프레임워크를 통합하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제