반응형 Spring57 [Spring + Kotlin] class, enum에 @JsonCreator 사용하는 방법 이번포스팅에선 jackson 라이브러리에서 제공하는 @JsonCreator를 사용하는 방법에 대해 알아보려고 한다. @JsonCreator란? json을 class로 바꿀 때 사용하는데 생성할 class의 기본 생성자를 사용하는 게 아니라 다른 생성자나 팩토리 함수를 통해서 class를 만들고 싶을 때 사용한다. @JsonCreator 사용법 class + @JsonCreator - 다른 생성자 constructor 위에 @JsonCreator를 붙이고 생성자 파라미터에 @JsonProperty("필드명")을 반드시 붙여줘야 한다. @JsonProperty를 붙이는 이유는 정확하게 모르겠지만 사용법에 붙이라고 나와있어서 붙였다. class Member( val id: Long, val name: Stri.. 2023. 11. 9. [Spring] Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.1.2 해결 방법 문제 IntelliJ에서 Spring Boot 3.x 버전을 만들었더니 뜬금없이 엄청나보이는 에러가 발생했다. 뭐여.. > Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.1.2. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.1.2 ... 원인 Spring Boot 3.x 버전은 JDK 17을 사용해야 하는데 내가 만든 프로젝트에선 JDK 17을 사용하지 않아 생기는 문제였다. 근데 나는 JDK 17 .. 2023. 7. 26. [Spring] RestTemplate은 정말 Deprecated되는 걸까? 루머 해결 이번 포스팅에선 RestTemplate은 정말 @Deprecated되는 건지 알아보려고 한다. 예~전 포스팅에서 RestTemplate vs WebClient에 대해서 다룬 적이 있었는데 그때는 막연하게 코드만 보고 내가 느낀 걸 썼다. 근데 때마침 토비님이 이에 대한 주제로 유튜브 라이브를 했던 걸 보게됐는데 속 시원하게 다 얘기해주셔서 너무 좋았다. 그래서 다시 깔끔하게 정리하고 싶었다. RestTemplate가 @Deprecated된다는 루머는 어디서 시작된 걸까? 때는 바야흐로 2018년 7월 27일... Rossen Stoyanchev가 RestTemplate이 나중 버전엔 deprecated된다는 커밋으로부터 시작됐다. 루머가 아니었던 것이었던 것이다. 그럼 RestTemplate가 정말 De.. 2023. 7. 25. [Spring] @EnableJpaRepositories bootstrapMode 정리 이번 포스팅에선 @EnableJpaRepositories 옵션인 bootstrapMode에 대해서 알아보겠다. BootstrapMode란? Spring Data JPA 공식 문서에 있는 소개글로 BootstrapMode가 뭔지 알아보자. 기본적으로 Spring Data JPA 리포지토리는 기본적인 Spring 빈입니다. 이들은 싱글톤 범위로 설정되어 있으며, 즉시 초기화됩니다. 시작 시점에서 JPA EntityManager와 상호작용하여 유효성 검사 및 메타데이터 분석에 사용됩니다. Spring Framework는 Spring 애플리케이션의 시작 시간을 상당히 소요하는 JPA EntityManagerFactory의 초기화를 백그라운드 스레드에서 지원합니다. 이러한 백그라운드 초기화를 효과적으로 활용하려면.. 2023. 7. 9. [Spring] Spring Boot + Kotlin + MyBatis ResultType, ResultClass에 Enum 사용법 이번 포스팅에선 ResultType, ResultClass에 Enum을 사용하는 방법에 대해 알아보겠다. 문제 아래와 같이 Customer를 ResultType으로 쓰는 쿼리가 있다. SELECT customer_name, id FROM customer AND id = #{id} AND customer_name = #{name} Customer 클래스는 아래와 같이 생겼다. Customer 클래스의 type을 보면 CustomerType이다. class Customer( val id: Long, val customerName: String, val type: CustomerType ) enum class CustomerType( val code: String ) { GOLD("G"), BRONZE("B".. 2023. 7. 2. [Spring] Spring Boot + MySQL 설정 방법 이번 포스팅에선 Spring Boot에서 MySQL 설정하는 방법에 대해 알아보겠다. 1. build.gradle.kts에 mysql-connection-java 의존성 추가 // Gradle runtimeOnly("com.mysql:mysql-connector-j") 2. application.yml에 MySQL 접속 정보 추가 spring: datasource: url: jdbc:mysql://{hostname}?useSSL=false&serverTimezone=Asia/Seoul username: {계정명} password: {비밀번호} driver-class-name: com.mysql.cj.jdbc.Driver 끝! 2023. 7. 2. [Spring] Spring Boot + Kotlin + JPA Native Query 사용법 (2) - entityManager.createNativeQuery 이번 포스팅은 Kotlin + JPA Native Query 사용법 2번째 포스팅으로 entityManager.createNativeQuery를 사용하는 방법에 대해 알아보겠다. entityManager.createNativeQuery 사용법 이 방법은 Spring Data JPA를 사용하는 게 아니고 hibernate를 직접 사용하는 방법이다. 조회하는 방법은 @Entity, DTO class 2가지가 있다. 하나씩 알아보자. 1. @Entity class 아래 Address Entity를 조회하는 동적쿼리를 예로 들어 설명하곘다. @Entity class Address( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long = 0,.. 2023. 6. 25. [Spring] Spring Boot + Kotlin + JPA Native Query 사용법 (1) - @Query 이번 포스팅부터 Spring + Kotlin + JPA Native Query 사용법에 대해 알아보려고 한다. JPA를 사용하다보면 어쩔 수 없이 JPQL이 아닌 native query를 사용해야 할 때가 있다. native query를 어떻게 사용할 수 있는지, 어떤 대안이 있는지, 어떤 장단점이 있는지 하나씩 알아보려고 한다. 이번 포스팅에선 @Query 어노테이션을 이용해 native query를 작성하는 방법에 대해 알아보겠다. @Query 사용법 @Query 파라미터 중 nativeQuery를 true로 주고 value에 native query를 작성하면 native query가 실행된다. @Query( value = "natvie query", nativeQuery = true ) fun .... 2023. 6. 25. [JPA] Hibernate 6.2.5.Final 공식 가이드 번역 (3) - Architecture Hibernate ORM 6.2.5.Final User Guide 1. 아키텍처 (Architecture) 1.1 개요 Hibernate는 ORM 솔루션으로써, 위의 다이어그램에서 볼 수 있듯이 Java 애플리케이션의 데이터 액세스 레이어와 관계형 데이터베이스 사이에 "중간 계층"으로 위치합니다. Java 애플리케이션은 Hibernate API를 사용하여 도메인 데이터를 로드, 저장, 쿼리 등에 활용합니다. 여기서는 Hibernate의 핵심 API를 소개합니다. 이는 간략한 소개일 뿐, 이후에 이러한 계약들에 대해 자세히 논의할 것입니다. Jakarta Persistence 제공자로서, Hibernate는 Java Persistence API 사양을 구현하며 Jakarta Persistence 인터페이스.. 2023. 6. 25. 이전 1 2 3 4 5 6 7 다음 반응형