먼저 배포할 모듈의 build.gradle 파일에 uploadArchives 라는 태스크를 추가합니다. 태스크 추가를 위해선 maven 플러그인이 필요하고 그 외의 메타데이터 정보들을 추가해주시면 됩니다. plugins { id 'maven' // 생략 } group = 'com.example.package' version = '0.0.1' sourceCompatibility = '1.8' archivesBaseName = 'example-archives-base-name' // 생략 uploadArchives { repositories { mavenDeployer { repository(url: 'path/to/repository') { authentication(userName: 'repository..
모든 소스는 여기서 확인하실 수 있습니다. Optional을 Jackson을 이용해 Serialize/Deserialize하면 어떻게 될까요? Optional 필드를 가지는 Object 하나의 Optional 필드를 가지는 Name이라는 클래스를 생성하였습니다. package io.lcalmsky.jackson.domain; import lombok.AccessLevel; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Optional; public class BeanWithOptional { @Data @NoArgsConstructor(access = AccessLevel.PROTECTED) public static class..
모든 소스는 여기서 확인하실 수 있습니다. 지난 포스팅에 이어서 JUnit5에서 추가된 내용을 간략하게 다뤄보려고 합니다. Dependencies ext { junitJupiterVersion = '5.4.2' junitPlatformVersion = '1.2.0' junitVintageVersion = '5.4.2' } dependencies { // junit5 testImplementation "org.junit.platform:junit-platform-runner:${junitPlatformVersion}" testImplementation "org.junit.vintage:junit-vintage-engine:${junitVintageVersion}" testImplementation "org..
모든 소스는 여기서 확인하실 수 있습니다. 개요 JUnit은 자바 생태계에서 가장 유명한 단위 테스트 프레임워크 입니다. 특히 JUnit5 버전에는 다양한 스타일의 테스트가 가능할뿐만 아니라 Java 8 버전 이상의 새로운 기능을 지원하기위한 여러 가지 혁신적인 기능이 포함되어 있습니다. 의존관계 - maven org.junit.jupiter junit-jupiter-engine 5.5.2 test - gradle testCompile 'org.junit.jupiter:junit-jupiter-engine:5.5.2' 2019년 9월에 release된 5.5.x 버전을 사용하였습니다. 자바 8버전 이상에서만 동작합니다. 아키텍처 JUnit5는 세 가지 하위 프로젝트 모듈로 구성되어 있습니다. JUnit ..
모든 소스는 여기서 확인하실 수 있습니다. 커스텀 애노테이션 (@JacksonAnnotationInside) @JacksonAnnotationInside 애노테이션을 사용하여 커스텀 애노테이션을 정의할 수 있습니다. package io.lcalmsky.jackson.domain.annotation; import com.fasterxml.jackson.annotation.JacksonAnnotationsInside; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonPropertyOrder; import java.lang.annotation.Retention; import java.l..
모든 소스는 여기서 확인하실 수 있습니다. @JsonProperty JSON에서의 속성 이름을 나타냅니다. 필드 변수 또는 getter/setter 메소드에 사용할 수 있습니다. package io.lcalmsky.jackson.domain; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Getter; import lombok.Setter; public class BeanWithJsonProperty { @Getter @Setter @JsonProperty("identity") private int id; private String name; @JsonProperty("nickname") public String getName()..
모든 소스는 여기서 확인하실 수 있습니다. Jackson에서 다형성 처리를 위하여 아래와 같은 애노테이션을 사용합니다. @JsonTypeInfo: 직렬화 시 포함할 타입 정보의 세부 사항을 나타냅니다. @JsonSubTypes: 애노테이션이 달린 타입의 하위 타입을 지정합니다. @JsonTypeName: 애노테이션이 달린 타입의 논리적 이름을 지정합니다. package io.lcalmsky.jackson.domain; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; ..
모든 소스는 여기서 확인하실 수 있습니다. @JsonIgnoreProperties @JsonIgnoreProperties는 Jackson이 무시할 속성 또는 속성 리스트를 나타냅니다. 문자열 배열 형식으로 나타낼 수 있습니다. package io.lcalmsky.jackson.domain; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.AccessLevel; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor(access = AccessLevel.PROTECTED) @JsonIgnoreProperties("password") pu..
모든 소스는 여기서 확인하실 수 있습니다. @JsonCreator 역 직렬화에 사용되는 생성자나 팩토리를 조정할 수 있습니다. 필요한 대상 엔터티와 정확히 일치하지 않는 일부 JSON을 역 직렬화해야 할 때 유용합니다. 아래와 같은 JSON이 존재하고 { "id": 1, "theName": "beanName" } 대상 엔터티에는 "theName" 필드가 존재하지 않지만 엔터티 자체를 변경하고 싶지 않을 때 생성자에 @JsonCreator주석을 달고 @JsonProperty를 사용하여 해결할 수 있습니다. package io.lcalmsky.jackson.domain; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jac..
git push -u origin +master branch 앞에 +를 붙여주면 됩니다.
- Total
- Today
- Yesterday
- Spring Data JPA
- Spring Boot JPA
- QueryDSL
- 스프링 데이터 jpa
- @ManyToOne
- Spring Boot
- r
- 헥사고날 아키텍처
- 스프링 부트
- 함께 자라기
- gRPC
- proto3
- 스프링 부트 애플리케이션
- 스프링 부트 튜토리얼
- JPA
- JSON
- 함께 자라기 후기
- Java
- 알고리즘
- spring boot app
- spring boot application
- Spring Boot Tutorial
- spring boot jwt
- intellij
- leetcode
- Linux
- 스프링 부트 회원 가입
- 스프링부트
- Jackson
- 클린 아키텍처
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |