파란하늘의 지식창고
JDK 11에서 java.xml.bind 관련 에러 발생하는 경우
Study/Java 2018. 12. 13. 17:03

JDK 9나 10에서 프로젝트 실행 시 아래와 같은 오류가 나게 되는 경우가 있다. Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBContext Java EE 모듈과 CORBA 모듈이 Deprecated 되면서 기본 참조가 되지 않아 발생한 문제였다. 내가 직접 쓰지 않더라도 사용하고 있는 오픈소스 라이브러리가 참조하고 있으면 발생하게 된다. (내 경우 spring cloud의 neflix eureka 라이브러리 쪽이 java.xml.bind 모듈을 참조하고 있었다.) 하지만 Deprecated 명시가 되어 있고 아직 라이브러리가 제거되지 않은 상태여서 --add-modules JVM 옵션만 추가하면 사용이 가능했다. java jar -..

Spring Boot multi module, multi profile 환경에서 @PropertySouce 사용하기
Study/Java 2018. 12. 10. 17:21

springframework는 profile 설정을 통해 환경마다 다른 설정을 호출할 수 있는 기능을 제공한다. spring application 을 실행 시 실행 변수로 spring.profiles.active를 선언하는 방식이다. $ java -jar -Dspring.profiles.active=p1 application.jar 사용 방법 1 - SpEL로 profile 지정 profile 별 properties 파일을 호출하는 경우 Spring 에서 제공하는 @PropertySource을 아래와 같이 사용한다. @Configuration @PropertySource("classpath:sample-${spring.profiles.active}.properties") public class Confi..

article thumbnail
STS 4.0.0 이후 java, properties 에디터에서 ctrl + space (content assist) 가 동작하지않는 경우
Study/Java 2018. 12. 6. 23:32

STS 4.0.0 이후 java 파일이나 properties 파일에서 ctrl + space (content assist)가 안되는 경우가 있었다.(워크스페이스와 git 소스를 다 지우고 다시 만들어도 마찬가지였음)Java 에디터에서 안되는 경우이 경우 아래 위치에서 초기화를 한번 해주면 된다.(Java Proposals가 언체크 되어 있어 동작하지 않았었다.)Preferences -> Java -> Editor -> Content Assist -> Advanced 메뉴에서 restore defaults 적용Properties 파일에서 안되는 경우이 경우에 대해서는 Spring 위키 문서에 해결 방법이 설명되어 있다.Boot Properties Editor4.0.0 이전엔 Java Properties F..

Spring Boot Mongodb reactive 설정하기
Study/Java 2018. 12. 3. 23:03

공부하면서 적는 내용이라 정확하지 않을 수 있음. 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 에러가 발생하는 경우
Study/Java 2018. 11. 28. 09:05

로컬에서 서버가 잘 동작하는데 빌드 할 때 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 11 New Features
Study/Java 2018. 11. 22. 19:17

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 10 New Features
Study/Java 2018. 11. 21. 22:09

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..

article thumbnail
JDK 9 New Features
Study/Java 2018. 11. 21. 18:16

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@..