728x90
반응형
JsonAlias를 사용하기위해 pom.xml에 Jackson lib를 추가합니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.9</version>
</dependency>
@JsonAlias 사용법
@Data
public class UserVO {
@JsonAlias(value = {"name", "userNm", "userName"}
private String name;
}
만약 Content-Type이 application/x-www-form-urlencoded 이라면 JSON이 아니기 때문에 Jackson을 사용하지 않아 값을 받을 수 없습니다.
이런 문제를 다음과 같이 해결할 수 있습니다.
@Data
public class UserVO {
@JsonAlias(value = {"name", "userNm", "userName"}
private String name;
//Setters for application/x-www-form-urlencoded
public void setUserNm(String userNm) {
this.name = userNm;
}
public void setUserName(String userName) {
this.name = userName;
}
}
혹은 request를 map으로 받아서 사용하면됩니다.
728x90
반응형
'spring' 카테고리의 다른 글
[SpringBoot2] java config로 hikari datasource, transaction aop 설정 (0) | 2020.11.01 |
---|---|
[Spring] Mockmvc에 ExceptionHandler 등록 (0) | 2020.10.31 |
[spring] @ResponseBody Annotation vs ResponseEntity (0) | 2020.10.31 |
[spring] @Valid를 이용한 validation 체크와 custom annotation으로 validation (0) | 2020.10.31 |
[springboot] sql script(schema.sql, data.sql) 실행 시 한글 깨짐 (0) | 2020.10.14 |
댓글