# 작업환경 IntelliJ, SpringBoot 2.4.3, gradle 기반, Java 13
# TEST_ID -> testId 형식의 CamelCase 적용하기
기존 레거시에서는 ObjectMapperFactory 구현과 MapWrapper 상속을 이용해서
hashmap에 들어간 key를 바꾸는 방법을 사용했는데 부트에서는 좀 더 다른 방법을 써보기로 했다.
다만, 아래와 같은 방법으로 하면 resultType을 hashmap이 아닌 구현한 객체 이름으로 바꿔줘야 한다.
1. 내가 사용한 방법은 guava 라이브러리를 활용, 따라서 build.gradle에 해당 라이브러리를 등록했다.
dependencies {
// ...
implementation group: 'com.google.guava', name: 'guava', version: '30.1-jre'
}
2. mybatis-config.xml 작성하기
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias type="packagename.mybatis.CamelHashMap" alias="CamelHashMap" />
</typeAliases>
</configuration>
- 기타 설정은 필요없어서 날리고 생성할 객체만 typeAlias로 지정해주었다.
3. application.properties 에 mybatis-config.xml 등록하기
파일의 경로를 아래와 같이 등록했다.
# Mybatis
mybatis.config-location=classpath:mybatis/mybatis-config.xml
4. CamelHashMap 클래스 생성 및 기능 구현
public class CamelHashMap extends HashMap<String, Object> {
public Object put(String key, Object value) {
return super.put(CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, key), value);
}
}
5. 결과
※ varchar의 결과가 위와 같이 byte 형식으로 반환된 것은 마리아db의 버전이 낮아서일까.. (10.1.x)
10.4.x에서는 정상적인 문자열로 반환이 된다.
위 경우 byte 를 String 형태로 다시 변환하는 작업을 해야 하는데, 그냥 vo를 사용할까 싶다.
(해결 방법을 도저히 찾을 수가 없음)
- 이상 끗
'Java & Spring' 카테고리의 다른 글
IntelliJ xml 쿼리문에 녹색 배경이 깔리는 현상 (0) | 2021.06.01 |
---|---|
우분투(18.04)에 openjdk 11 설치하기 (0) | 2019.03.27 |
배열 정렬하기 (0) | 2019.02.07 |
<context : annotation-config> vs <context : component-scan> (0) | 2019.01.24 |
HttpURLConnection 설정 및 옵션 (0) | 2018.03.31 |