본문 바로가기

프레임워크/스프링24

Spring @Aspect 범위 애노테이션으로 적용하기 @Retry 애노테이션이 있으면 예외가 발생하면 다시 시도하도록 하겠습니다. @Retry package hello.aop.exam.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.METHOD) //메소드에 적용 @Retention(RetentionPolicy.RUNTIME) public @interface Retry { int value() default 3; } 이 애노테이션에서 재시도 횟수 기본값을 3으로 지.. 2023. 1. 6.
@RequestParam vs @PathVariable 스프링 controller에서 사용하는 @RequestParam, @PathVariable를 기록하겠습니다. uri를 통해 값을 전달할때 방식은 2가지가 있습니다. - http://localhost:8000/board?type=post&page=1 - http://localhost:8000/board/post/1 첫번째 방식은 @RequestParam를 사용하는거고 두번째 방식은 @PathVariable 사용했습니다. @RequestParam @Controller public class HomeController { @RequestMapping("/board") public String checkId(@RequestParam("type") String type, @RequestParam(value = ".. 2022. 12. 29.
Spring @Aspect를 사용하여 어드바이저 생성 기능 사용 스프링 애플리케이션에 프록시를 적용하려면 포인트컷과 어드바이스로 구성되어 있는 어드바이저 ( Advisor )를 만들어서 스프링 빈으로 등록하면 된다. 그러면 나머지는 앞서 배운 자동 프록시 생성기가 모두 자동으로 처리해준다. 자동 프록시 생성기는 스프링 빈으로 등록된 어드바이저들을 찾고, 스프링 빈들에 자동으로 프록시를 적용해준다. (물론 포인트컷이 매칭되는 경우에 프록시를 생성한다.) 스프링은 @Aspect 애노테이션으로 매우 편리하게 포인트컷과 어드바이스로 구성되어 있는 어드바이저 생성 기능을 지원한다. 지금까지 어드바이저를 직접 만들었던 부분을 @Aspect 애노테이션을 사용해서 만들어보자. LogTrace.java public interface LogTrace { TraceStatus begin.. 2022. 12. 24.
스프링이 지원하는 프록시 스프링이 지원하는 프록시를 사용하는 이유 1. 스프링은 유사한 구체적인 기술들이 있을 때, 그것들을 통합해서 일관성 있게 접근할 수 있고, 더욱 편리하게 사용할 수 있는 추상화된 기술을 제공한다. 스프링은 동적 프록시를 통합해서 편리하게 만들어주는 프록시 팩토리 (ProxyFactory)라는 기능을 제공한다. 이전에는 상황에 따라서 JDK 동적 프록시를 사용하거나 CGLIB를 사용해야 했다면, 이제는 이 프록시 팩토리 하나로 편리하게 동적 프록시를 생성할 수 있다. 2. 두 기술을 함께 사용할 때 부가 기능을 적용하기 위해 JDK 동적 프록시가 제공하는 InvocationHandler와 CGLIB가 제공하는 MethodInterceptor를 각각 중복으로 만들어야 되는 문제가 있는데 스프링은 Advice.. 2022. 12. 11.