Spring

JVM/Spring

[Spring] h2 설정

OS M1 MAX macOS Ventura 13.2 PROJECT java - 11 kotlin - 1.6.21 spring - 2.7.8 build.gradle.kts dependencies { ... runtimeOnly("com.h2database:h2") } application.yml spring: h2: console: enabled: true path: /h2-console datasource: url: jdbc:h2:mem:test username: sa password: driverClassName: org.h2.Driver platform: h2 접근 url - http://localhost:8080/h2-console 에러사항 원인 데이터베이스가 존재하지 않아서 발생되는 문제입니다. ..

JVM/Spring

[Spring] CaffeineCache key는 Object

🥺 본론 key가 Object이기 때문에 key를 지정할 때 타입을 신경써서 해야된다. 자칫 Integer로 지정했다가 String으로 조회하게 되면 조회가 안된다.. 🙂 결론 개인적으로는 하나의 타입으로 통일 (ex - String)하는 게 헷갈리지 않고 좋을 것 같다.

JVM/Spring

[Spring] Spring의 ObjectMapper 쉽게 Custom 만들기

🤔 서론 프로젝트를 진행하다 보면 objectMapper를 새로 만들어서 할 일이 종종 생긴다. 이때 새로 만들게 되면 Spring에서 기본적으로 제공해주는 옵션들을 찾아 동일하게 적용한 후에 내가 원하는 옵션들을 추가하고 싶을 수 있다. 어떻게 쉽게 만들 수 있을까? 😏 본론 스프링에서 기본적으로 설정하는 properties와 기본적으로 넣어주는 모듈들이다. 이런 걸 할 때마다 일일이 찾아 설정해 주고, 반복적으로 하는 건 매우 귀찮은 일이다. 스프링에서 기본으로 제공하는 ObjectMapper를 쉽게 만드는 법은 간단하다. fun objectMapper(): ObjectMapper = Jackson2ObjectMapperBuilder().build() 위처럼 Jackson2ObjectMapperBui..

JVM/Spring

[Spring] How to change the CamelCase to SnakeCase when i use POST form-url-encoded in Spring Cloud feign Client

😢 서론 KakaoPay API 통신을 feign client를 통해 진행하는 중 POST로 form-urlencoded 타입으로 전송해야 하는데, @JsonNaming 애노테이션이 form-urlencoded 타입에서는 정상적으로 작동하지 않아 해결한 내용을 정리해봅니다.. ㅜ 이 글은, feign Client를 통해 요청을 보내는 방법을 정리합니다. 본인의 서버 컨트롤러로 받는 방법으로는 여기 에서 많은 해결책이 나와있습니다. 참고 바랍니다!! 🫢 본론 FeignClient @FeignClient(name = "kakaoPay", url = "https://kapi.kakao.com/v1", path = "/payment", configuration = CoreFeignConfiguration.cla..

JVM/Spring

[Spring] Spring Cloud Feign logging 설정

😢 서론 처음에 설정했을땐 logging not working.. logging이 작동하지 않아 간단하게 정리해봅니다. 🙂 본론 public class CoreFeignConfiguration { @Bean Logger.Level feignLoggerLevel() { return Level.FULL; } } @FeignClient(configuration = CoreFeignConfiguration.class) public interface KakaoPayClient { ... } 코드를 추가해도 로깅이 찍히지 않아서 검색해본 결과 application.yml 에서도 logging을 설정해주어야 했었습니다. Fiegn Client가 포함된 패키지 혹은 클래스에 대해서 Spring Boot 로깅 수준을 D..

JVM/Spring

[Spring] Error creating bean with name 'configurationPropertiesBeans' defined in class path resource - Spring Cloud

🫣 서론 스프링 클라우드 gradle 설정 시 만난 오류.. 🔥 본론 [main] ERROR org.springframework.boot.SpringApplication - Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationPropertiesBeans' defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]: Post-processing of merged bean ..

JVM/Spring

[Spring] 통합테스트 환경 분리 설정 - Gradle Kotlin DSL

🧐 서론 테스트를 돌릴 때 통합테스트는 Spring을 올리기 때문에 생각보다 긴 시간을 잡아먹습니다. 현재 프로젝트에서 통합테스트가 별로 없음에도 통합테스트와 유닛테스트 구분 없이 한 번에 돌리다보니 시간이 비효율적이라고 느꼈고, 환경을 분리해야겠다고 생각이 들어 내용을 정리해보겠습니다. 참고 참고로 gradle은 Groovy 가 아닌 Kotlin 으로 진행된 점 참고하여 봐주시길 바랍니다! 😎 본론 build.gradle.kts 설정 sourceSets { create("intTest") { compileClasspath += sourceSets.main.get().output runtimeClasspath += sourceSets.main.get().output } } val intTestImplem..

JVM/Spring

[Spring] Exception 어떻게 처리할까?

🤔 서론 Exception Handler 를 구현하다 리펙토링 한 경험을 작성합니다. 🫢 본론 기존 Exception 은 상황에 맞게 각각 Custom Exception 을 만들어서 처리를 했습니다. 문제점 Exception 마다 각각의 Handler 를 만들어주어야 했습니다. 클래스는 통합해서 작성해도 되지만, 여기서 중요한 건 만든 각각의 Custom Exception 별로 별도의 Handler를 추가로 계속 작성해주어야만 했습니다. 중복된 코드 private static final String MESSAGE = "패스워드가 일치하지 않습니다"; @ExceptionHandler(value = {PasswordMismatchException.class, BadCredentialsException.cla..

Hyo Kim
'Spring' 태그의 글 목록