[Spring] Spring Feign DTO 파라미터 @Setter

동민·2021년 11월 17일
0

Spring Feign 에서 DTO 파라미터를 타 프로젝트로 자동매핑하여 넘겨주려면 DTO에 롬복 @Setter 어노테이션을 명시해주어야 한다.

1. 롬복 @Setter 를 명시하지 않은 경우

Project A

AAAInfo.java

@Data
public class AAAInfo {
    String name;
    String address;
    Integer age;
}

XXXFeignClient.java

@GetMapping("/info")
Json<?> info(@SpringQueryMap AAAInfo aaaInfo);

Project B

BBBInfo.java

// @Setter 없음
@Builder
@JsonIgnoreProperties(ignoreUnknown = true)
public class BBBInfo {
    String name;
    String address;
}

XXXRestController.java

@GetMapping("/info")
public Json<?> info(BBBInfo bbbInfo) {
    return Json.create(OOOService.info(bbbInfo));
}
  • bbbInfo 객체 내 각 필드는 null로 Setting 됨.. 데이터가 자동 Set 되지 않음

2. 롬복 @Setter 를 명시하는 경우

Project A

AAAInfo.java

@Data
public class AAAInfo {
    String name;
    String address;
    Integer age;
}

XXXFeignClient.java

@GetMapping("/info")
Json<?> info(@SpringQueryMap AAAInfo aaaInfo);

Project B

BBBInfo.java

@Data // @Setter 명시
@JsonIgnoreProperties(ignoreUnknown = true)
public class BBBInfo {
    String name;
    String address;
}

XXXRestController.java

@GetMapping("/info")
public Json<?> info(BBBInfo bbbInfo) {
    return Json.create(OOOService.info(bbbInfo));
}
  • bbbInfo 객체 내 각 필드는 aaaInfo 데이터로 Setting 됨.. 데이터가 자동 Set 매핑 됨!
profile
BE Developer

0개의 댓글