파란하늘의 지식창고
article thumbnail
JCP JSR JEP에 대해
Study/Java 2018. 11. 20. 09:57

JCP (Java Community Process)자바 기술에 대한 표준 기술 명세를 개발하는 메커니즘.JCP 절차등록된 커뮤니티 멤버(전세계 여러 유저 그룹들, 파트너 멤버, 정회원)로 부터 시작 -> Early Draft(초기 초안)가 작성되고 -> 공개 리뷰를 한 후 -> 최종 초안 제안 -> 승인 투표 -> 유지 보수 검토stage 별로 보면 최종 릴리즈 된 것도 많지만 통과되지 못하고 철회된 것도 많음 (JSRs by stage)JSR (Java Specification Requests)자바 요구 사항 상세 명세서JEP (JDK Enhancement Proposal)Java Development Kit와 OpenJDK 를 향상된 기능에 대한 제안을 수집하기 위해 오라클이 초안을 작성하는 프로세스..

RestTemplate list 반환하기
Study/Java 2018. 11. 16. 17:09

요청을 반환받는 클래스가 다음과 같다고 가정한다. @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..

자주 쓰는 spring util 기록
Study/Java 2018. 11. 14. 17:31

자주 쓰는 유틸 목록 기록 계속 업데이트 할 예정 유틸은 알파벳 순서로 정렬 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..

java Exception은 어떻게 사용하는게 좋을까?
Study/Java 2018. 11. 12. 17:33

Exception을 사용하는 방법에 대한 글은 아니고 어떻게 쓰는게 좋은지에 대해 정리해보았다. 시대가 변하면 방법도 변하기 마련이다. 이 글의 내용이 정답은 아니고 다만 글을 쓴 시점에서 어떤게 가장 좋을지 정리해본 글이다.과거 사용하던 에러 처리 방식 1예전에는 아래와 같은 방식으로 Exception을 모두 감싸고 결과를 반환하는 형태로 개발하던 시절도 있었다. //대상 객체 public class Article { // ... article 설정 } // 결과 반환 객체 public class ArticleResult extends Article { boolean isSuccess; String errorCode; String errorMessage; // ... 에러 관련 설정 } // 대상 서비..

Spring Boot 2.1.0 Release
Study/Java 2018. 10. 31. 16:26

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

Spring Boot 2.0 PropertyMapper 사용하기
Study/Java 2018. 10. 24. 13:32

Spring Boot를 사용하면 내부 사용을 위한 라이브러리 모듈 제공이 편리해진다. 모듈에서 사용하는 속성 값을 설정하기 편하게 @ConfigurationProperties를 제공하기 때문이다. 보통 빌더 패턴을 이용해 기본 값을 설정하고 외부 설정 properties 값이 있는 경우 해당 값으로 merge 처리를 하는 형태로 Properties 객체를 관리하게 된다. Spring Boot 1.x 에서는 이런 형태의 관리를 하는 경우가 몇몇 군데 있을 것으로 예상되는데 참고한 코드는 spring security의 oauth 코드이다. 1.x의 OAuth2ClientPropertiesRegistrationAdapter private static ClientRegistration getClientRegis..

Spring Boot 2.0에서 Deprecated 된 RelaxedPropertyResolver 변경하기
Study/Java 2018. 10. 23. 16:18

Spring Boot 1.x 에서 잘 사용하고 있던 RelaxedPropertyResolver가 2.0 이후 Deprecated 되었다. Binder를 사용하는 것을 Migration Guide에서 권장하고 있다. Spring Boot 2.0 Migration Guide #Relaxed Binding 참고 Relaxed Bind 2.0 위키 문서 Spring Boot 1.x에서 RelaxedPropertyResolver를 사용하던 방식은 다음과 같다. @Bean public Map uiPropertiesMap(Environment environment) { return new RelaxedPropertyResolver(environment, "ui.").getSubProperties(""); } 단순히 ..

Spring Boot 2.0 마일스톤 별 변경 사항
Study/Java 2018. 10. 10. 04:04

2.0 마일스톤 버전 나올 때마다 조금씩 체크했던 내용. 현재는 Spring Boot 2.0 Migration Guide 를 참고하면 됨 마일스톤 별로 바뀐거 찾을 일이 있을까 싶어 기록용으로 남겨둠 spring-Boot와 spring-cloud 간 연동 버전 관련 정보는 spring cloud Release Note를 참고 properties가 변경된 내용은 Spring Boot 2.0 Configuration Changelog 를 참고 Property Binding in Spring Boot 2.0RelaxedPropertyResolver, PropertySourceUtils 가 제거되고 Binder 를 제공함 (org.springframework.boot.bind 패키지가 없어짐) Spring-bo..