본문 바로가기

반응형

Study/Java

(189)
Spring Boot AutoConfiguartion 에서 생성자나 @PostConstruct로 ConfigurationProperties 값 변경 시 bean 호출 순서 문제 문제 발생 상황은 다음과 같다. Spring Boot AutoConfiguration으로 개발 ConfiguartionProperties를 사용 AutoConfiguration에서 ConfiguartionProperties를 생성자 또는 @PostConstruct에서 호출하여 추가 작업을 처리 다른 Configuration에서 해당 properties를 사용하면 3번 작업이 수행되지 않은 상태로 ConfigurationProperties가 넘어와서 문제가 발생 (로그로 확인해보면 이 후에 수행 되는 것을 확인함) 해당 상황의 간단한 코드는 다음과 같다. @Configuration @EnableConfigurationProperties(TestProperties.class) public class ACon..
Eclipse debug view의 Variables에 Error 가 표시되는 경우 잘 쓰던 Eclipse (또는 STS)가 최근 버전을 다운로드하고 나서 debug 창에 객체 정보가 올바르게 보이지 않는 현상이 발생하고 있다. (STS 4.2.0, 4.2.1에서 확인한 현상임) 예를 들어 아래처럼 에러가 나서 하위 객체의 정보가 표시되지 않고 있다. 그런데 또 해당 객체를 클릭하면 아래에 관련 정보를 간략하게나마 아래창에서 확인이 된다. 뭔가 새 버전의 eclipse에서 기본 설정값이 바뀐 것 같은데 하위 객체 정보를 바로 보지 못해 불편하다. 아래와 같이 해당 창에서 오른쪽 마우스 -> Show Logical Structure -> Array 체크 항목을 해제하면 기존의 결과처럼은 보이지 않지만 어느 정도 확인을 할 수 있게 된다. 해당 설정은 이전 버전에서도 동일한 설정이었고 현재..
Eclipse Package Explorer 에서 Maven Dependencies 정렬하기 Eclipse를 사용하면서 Package Explorer의 Maven Dependencies에서 참조된 dependency jar를 열어보는 경우가 많다. 그런데 정렬이 되어 있지 않아 찾기가 힘들다. 요걸 정렬하는 옵션이 Eclipse에 있다. Window -> Preferences -> Java Appearance 에 Sort library entries alphabetically in Package Explorer 옵션을 활성화해주면 된다. 해당 설정을 하면 아래 처럼 정렬이 되어 찾기 편해진다.
Spring Boot AutoConfigurtaion java.io.FileNotFoundException: class path resource [.class] cannot be opened because it does not exist 에러 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..
Spring Boot AutoConfiguration 개발하기 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 파..
Jasypt 암복호화 하기 암호화는 잘 모르는 내용이라 테스트하면서 기록하여 두서없음 dependency 참조 org.jasypt jasypt 1.9.2 다른 참조 라이브러리로 사용한다면 jasypt-spring-boot-starter 2.1.1이 현재 있긴 한데 해당 pom은 현재 com.melloware.jasypt 1.9.4 라이브러리를 참조하고 있다. com.melloware.jasypt의 경우 StringFixedSaltGenerator를 사용하면 오류가 발생하고 있어 org.jasypt.jasypt를 사용해야 한다 기본 사용 암복호화를 간단하게 해 보면 아래와 같다. public void encryptSimpleTest() { StandardPBEStringEncryptor encryptor = new StandardP..
에러 로그를 웹에서 json으로 호출해서 확인하기 (logback appender 만들기) 서버 개발자가 로그를 보는건 그냥 서버들어가서 확인하면 된다. 하지만 프론트 개발자와 협업을 하는 경우 서버 로그 확인 요청을 받는 경우가 종종 있다. 이런 경우 웹에서 바로 로그를 확인하면 좋을 것 같아 만들어보았다. Logback의 appender를 사용한 방법이다. logback은 appender로 로그를 처리하는 방식을 관리한다. 여러가지 방식의 appender를 logback이 제공해주지만 기본 제공해주는 appender 중엔 웹 요청으로 응답을 처리하는 appender는 없다. custom appender를 하나 만들어준다. public class BlueskyLogbackAppender extends UnsynchronizedAppenderBase { private BlueskyLogback..
Spring Boot log 설정하기 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 만약 다른..

반응형