공부하면서 적는 내용이라 정확하지 않을 수 있음. mongodb 를 모르는 상태에서 연동을 하는 정도의 수준 reactive를 공부하려고 이 설정을 진행 하였음. reactive가 아닌 경우의 설정은 생략 spring-data-mongodb 설정 boot를 사용하지 않는 경우 아래와 같이 AbstractReactiveMongoConfiguration를 구현하여 설정을 한다. dependency 설정 org.springframework.data spring-data-mongodb java config 설정 @Configuration @EnableReactiveMongoRepositories(basePackages = "net.luversof.blog.repository") public class BlogR..
로컬에서 서버가 잘 동작하는데 빌드 할 때 constructor ... already defined in class 에러가 나는 경우가 있다. 해당 에러는 lombok 1.16.22 에서 발생하는 에러이다. 1.16.22 - constructor ... already defined in class 해결 방법은 lombok 버전을 1.18.0 이상으로 변경하거나 또는 아래와 같이 @Data 와 @NoArgsConstructor 선언 순서를 맞춰주어야 한다. @NoArgsConstructor @Data public class Foo { } @Data를 꽤 많은 부분에서 사용하고 있는 경우가 대다수이므로 순서를 바꾸기 보단 lombok 버전을 변경하는 것을 추천한다. Spring Boot를 사용하고 있는 경우..
JDK의 버전별 변경 사항은 이곳을 참고하세요.특징과 일정은 JEP 2.0 draft에 의해 개정된 JEP 프로세스를 통해 관리된다. JDK 11 은 3년마다 제공되는 Long-term support 버전임 Spec Java SE 11 (18.9) Platform JSR (384) 에 정의된 바와 같이 JSR 384 구현이 목표 실제 Spec은 Final Release Specification 문서를 참고해야함Final Release Specification Feature summary전체 JEP Feature 목록은 OpenJDK의 JDK 11 문서로 확인할 수 있다.Component Feature Security ChaCha20 and Poly1305 Cryptographic Algorithms 암호..
JDK의 버전별 변경사항은 이곳을 참고하세요.특징과 일정은 JEP 2.0 draft에 의해 개정된 JEP 프로세스를 통해 관리된다. Spec Java SE 10 (18.3) Platform JSR (383) 에 정의된 바와 같이 JSR 383 구현이 목표 실제 Spec은 Final Release Specification 문서를 참고해야함Final Release Specification Feature summary 전체 JEP Feature 목록은 OpenJDK의 JDK 10 문서로 확인할 수 있다. Component Feature Core Libraries Additional Unicode Language-Tag Extensions 추가 유니코드 Language 태그 확장 Time-Based Releas..
JDK의 버전별 변경 사항은 이 곳을 참고하세요.특징과 일정은 JEP 2.0 draft에 의해 개정된 JEP 프로세스를 통해 관리된다.SpecJava SE 9 Platform Umbrella JSR (379) 에 정의된 바와 같이 JSR 379 구현이 목표 실제 Spec은 Final Release Specification 문서를 참고해야함Final Release Specification Feature summary 전체 JEP Feature 목록은 OpenJDK의 JDK 9 문서로 확인 할 수 있다.Component Feature Core LibrariesConvenience Factory Methods for Collections불변 컬렉션 생성 편의성 메소드 제공Enhanced Deprecation@..
JCP (Java Community Process)자바 기술에 대한 표준 기술 명세를 개발하는 메커니즘.JCP 절차등록된 커뮤니티 멤버(전세계 여러 유저 그룹들, 파트너 멤버, 정회원)로 부터 시작 -> Early Draft(초기 초안)가 작성되고 -> 공개 리뷰를 한 후 -> 최종 초안 제안 -> 승인 투표 -> 유지 보수 검토stage 별로 보면 최종 릴리즈 된 것도 많지만 통과되지 못하고 철회된 것도 많음 (JSRs by stage)JSR (Java Specification Requests)자바 요구 사항 상세 명세서JEP (JDK Enhancement Proposal)Java Development Kit와 OpenJDK 를 향상된 기능에 대한 제안을 수집하기 위해 오라클이 초안을 작성하는 프로세스..
요청을 반환받는 클래스가 다음과 같다고 가정한다. @Data public class ResultClass { private long idx; private String name; } List로 리턴 받는 방법 - 문제가 있음. 비추천 List list = restTemplate.getForObject("url", List.class); 이 방법은 문제가 있다. 컴파일에는 문제가 없지만 호출하고 나서 list 값을 살펴보면 ResultClass 객체가 아닌 LinkedHashMap 객체를 가지고 있는 걸 확인할 수 있다. 그래서 만약 다음처럼 호출하는 순간 에러가 발생한다. List list = restTemplate.getForObject("url", List.class); ResultClass resu..
자주 쓰는 유틸 목록 기록 계속 업데이트 할 예정 유틸은 알파벳 순서로 정렬 org.springframework.beans.BeanUtils T instantiateClass(Class clazz) 해당 class 로 Object 생성 A a = BeanUtils.instantiateClass(A.class); void copyProperties(Object source, Object target) source의 속성을 target으로 복사 확장한 class에서 기존 class의 값을 복사해서 쓰거나 동일한 속성값이 있는 두 클래스간 값 복사 시 유용함 org.springframework.core.GenericTypeResolver Class[] resolveTypeArguments(Class clazz..
Exception을 사용하는 방법에 대한 글은 아니고 어떻게 쓰는게 좋은지에 대해 정리해보았다. 시대가 변하면 방법도 변하기 마련이다. 이 글의 내용이 정답은 아니고 다만 글을 쓴 시점에서 어떤게 가장 좋을지 정리해본 글이다.과거 사용하던 에러 처리 방식 1예전에는 아래와 같은 방식으로 Exception을 모두 감싸고 결과를 반환하는 형태로 개발하던 시절도 있었다. //대상 객체 public class Article { // ... article 설정 } // 결과 반환 객체 public class ArticleResult extends Article { boolean isSuccess; String errorCode; String errorMessage; // ... 에러 관련 설정 } // 대상 서비..
Spring Boot 2.1.0 이 릴리즈 되었다. 이전 버전은 2.0.6.RELEASE 였다. Spring Framework 5.1 기반이다. Spring Boot 2.1.0 Blog Spring Boot 2.1 Release NotesUpgrading to Spring Framework 5.x 마이너 버전이 변경되어서 판올림 시 변경해줘야 하는 부분이 있다. Spring Boot 2.1.0 Configuration Changelog 변경 작업을 하면서 확인한 부분Servlet Path기존 server.servlet.path 가 spring.mvc.servlet.path로 변경Spring Version POM Propertypom에서 사용하던 spring.version 속성이 spring-framewo..