88.6.2. 사용자 정의 매핑
사용자 지정 매핑을 사용하면 소스 필드가 대상 필드에 매핑되는 방법에 대한 자체 논리를 정의할 수 있습니다. 이는 Dozer 고객 컨버터와 기능 면에서 두 가지 주목할만한 차이점이 있습니다.
- 사용자 지정 매핑이 있는 단일 클래스에 여러 개의 변환기 메서드를 포함할 수 있습니다.
- 사용자 지정 매핑을 사용하여 Dozer 특정 인터페이스를 구현할 필요가 없습니다.
매핑 구성에서 기본 제공 '_customMapping' 변환기를 사용하여 사용자 정의 매핑을 선언합니다. 이 변환기의 매개 변수에는 다음과 같은 구문이 있습니다.
[class-name][,method-name]
메서드 이름은 선택 사항입니다. Dozer 구성 요소에서 매핑에 필요한 입력 및 출력 유형과 일치하는 메서드를 검색합니다. 사용자 정의 매핑 및 구성의 예는 아래에 제공됩니다.
public class CustomMapper { // All customer ids must be wrapped in "[ ]" public Object mapCustomer(String customerId) { return "[" + customerId + "]"; } }
<mappings xmlns="http://dozermapper.github.io/schema/bean-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://dozermapper.github.io/schema/bean-mapping http://dozermapper.github.io/schema/bean-mapping.xsd"> <mapping> <class-a>org.example.A</class-a> <class-b>org.example.B</class-b> <field custom-converter-id="_customMapping" custom-converter-param="org.example.CustomMapper,mapCustomer"> <a>header.customerNum</a> <b>custId</b> </field> </mapping> </mappings>