파란하늘의 지식창고
article thumbnail
RestTemplate 응답 log 확인하기
Study/Java 2019. 6. 20. 08:23

Spring framework 5.1.6.RELEASE 기준으로 작성함 RestTemplate log 보기 RestTemplate의 응답을 확인하고자 하는 경우 아래처럼 로그를 추가하면 된다. logging.level.org.springframework.web.client=DEBUG 이 경우 body정보를 log로 남기게 되는데 다만 전제 조건이 있다. RestTemplate은 callback을 2가지 유형으로 처리를 한다. RequestCallback 설명 AcceptHeaderRequestCallback AcceptHeader를 만드는 Callback HttpEntityRequestCallback RequestBody를 만드는 Callback AcceptHeaderRequestCallback을 확장하..

article thumbnail
Spring Rest Docs 사용해보기
Study/Java 2019. 6. 14. 14:23

Spring Rest Docs 2.0.5.RELEASE 기준으로 작성된 글 maven 빌드 기준 설명임 Spring REST Docs 소개 Sprig Rest Docs 문서 Spring REST Docs Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test. docs.spring.io Spring Rest Docs는 asciidoc 개발 문서 작성에 spring web 요청/응답 결과에 대한 문서 자동화를 지원해주는 라이브러리이다. 예전에 spring boot + swagger기반의 라이브러리인 springfox swagger를 사용해서..

Spring Boot 전역 에러 처리
Study/Java 2019. 4. 30. 13:31

Spring Framework 5.1.6.RELEASE, Spring Boot 2.1.4 .RELEASE 기준으로 작성됨 Spring Framework의 전역 에러 처리 Spring framework는 전역 에러를 처리하기 위해 아래의 인터페이스를 제공한다. 제공되는 interface servlet (webmvc) HandlerExceptionResolver reacitve (webflux) WebExceptionHandler Servlet 전역 에러 처리 HandlerExceptionResolver Spring Web MVC - Dispatcher Servlet - Exceptions handlerExceptionResolver는 servlet에서 전역 에러 처리를 하기 위해 제공되는 인터페이스이다. ..

Spring Boot AutoConfiguartion 에서 생성자나 @PostConstruct로 ConfigurationProperties 값 변경 시 bean 호출 순서 문제
Study/Java 2019. 4. 23. 11:25

문제 발생 상황은 다음과 같다. Spring Boot AutoConfiguration으로 개발 ConfiguartionProperties를 사용 AutoConfiguration에서 ConfiguartionProperties를 생성자 또는 @PostConstruct에서 호출하여 추가 작업을 처리 다른 Configuration에서 해당 properties를 사용하면 3번 작업이 수행되지 않은 상태로 ConfigurationProperties가 넘어와서 문제가 발생 (로그로 확인해보면 이 후에 수행 되는 것을 확인함) 해당 상황의 간단한 코드는 다음과 같다. @Configuration @EnableConfigurationProperties(TestProperties.class) public class ACon..

Spring Boot AutoConfigurtaion java.io.FileNotFoundException: class path resource [.class] cannot be opened because it does not exist 에러
Study/Java 2019. 4. 3. 15:49

Spring Boot AuoConfiguration 개발할 때 spring.factories에 EnableAutoConfiguration를 등록하여 사용하는데 아래와 같은 에러가 발생하는 경우가 있다. Caused by: java.io.FileNotFoundException: class path resource [.class] cannot be opened because it does not exist at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:180) at org.springframework.core.type.classreading.SimpleMetadataReader.(SimpleMetad..

article thumbnail
Spring Boot AutoConfiguration 개발하기
Study/Java 2019. 3. 28. 15:21

Spring Boot 기반의 프로젝트를 개발하면서 사용하는 기능들을 정리 @ConfigurationProperties 사용하기 ConfigurationProperties는 properties 파일에 설정한 property 값을 java object에 매핑하여 java 코드에서 해당 값을 사용하기 편하게 해 준다. 아래와 같은 properties class를 만든다고 가정한다. @Data @ConfigurationProperties(prefix = "test.sample") public class TestSampleProperties { private String testStr; private int testInt; } 해당 Properties 설정과 매칭 되는 property 값을 properties 파..

Spring Boot log 설정하기
Study/Java 2019. 1. 9. 08:57

Spring Boot는 java util logging, log4j2, logback에 대한 기본 설정을 제공하고 starter를 사용하면 logback를 default로 설정하여 사용한다. https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/#boot-features-logging dependency 설정 아래와 같이 설정한다. (만약 spring-boot-starter 를 참조 선언하고 있다면 spring-boot-starter-logging은 기본 참조 되어 있다.) org.springframework.boot spring-boot-starter-logging org.codehaus.janino janino 만약 다른..

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