Spring AnnotatedElementUtils (meta-annotation)

오늘은 Spring에서 제공해주는 AnnotatedElementUtils (Meta-annoation)클래스에 대해서 알아보도록 하자. 아주 예전에 메타 어노테이션에 대해서 알아본적이 있는데 그 행위들을 AnnotatedElementUtils 이라는 클래스를 이용하여 구현되었다. 어노테이션 속성의 오버라이딩기능을 사용하고 싶다면 AnnotatedElementUtils클래스를 사용하면 되고, 그렇지 않다면 AnnotationUtils 클래스만을 이용하면 된다. AnnotationUtils 간단한 예제를 보면서 살펴보자. @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface Publish { String value(); String address() default “”; } 위와 같이 @Publish라는 어노테이션이 있다고 가정하자. 속성으로는 value와 address 라는 속성을 갖고 있다. @Publish(“redis”) public.. Read More

Spring Web immutable Parameter

오늘은 Web immutable Parameter Object에 대해서 알아보도록 하자. 요즘에는 immutable Object를 많이 사용하는 듯 하다. 아마도 가장 좋은점은 스레드 세이프하다는 장점이 있어야 일 것이다. 그래서 오늘 Spring web과 관련해서 immutable 한 Parameter에 대해서 알아보도록 하자. 요즘은 코틀린으로 Spring 개발을 많이 하고 있고 Spring 에서도 코틀린을 거의 완벽히 지원해주고 있다. 또한 java에서는 lombok도 많이 사용하고 있으니 괜찮다면 한번 살펴보는 것도 나쁘지 않다. @ModelAttribute Spring5 부터는 @ModelAttribute도 불변의 Object도 사용가능하다. 아마도 코틀린을.. Read More

Spring boot 2.1 의@WebMvcTest

오늘 이야기할 내용은 Spring boot 2.1의 @WebMvcTest 어노테이션에 대해서 살펴볼텐데 기존의 @WebMvcTest과 조금 다른 부분이 있어 그것에 대해 알아보도록 하자. 만약 Spring boot 2.0 혹은 그 이전 버전에서 Spring boot 2.1로 버전을 올린다면 함께 봐야 할 수도 있다. 물론 그 상황이 라면? 필자도 Spring boot 2.0 에서 2.1로 올렸을 때 발생한 이슈였다. 2.0에서는 문제 없이 잘 실행 되었지만 2.1로 버전을 올렸더니 갑자기 테스트 케이스들이 실패하였다. 그래서 그 이유가 무엇인지 찾아보기.. Read More