@EnableAspectJAutoProxy 2

스프링의 프록시 생성방식과 적용 실제 main 함수 사례. 2021-06-08

우선 이전 포스트의 빈 설정 클래스를 보자. @Configuration @EnableAspectJAutoProxy public class Appctx { @Bean public ExeTimeAspect exeTimeAspect() { return new ExeTimeAspect(); } @Bean public Calculator calculator() { return new RecCalculator(); } } 이렇게 빈 객체 설정을 완료한 후, 대상객체를 calculator(), 프록시를 exeTimeAspect()로 하는 스프링 AOP를 실제로 main 메서드에 적용해서 함수의 작동시간을 알아보는 코드를 보자. public class MainAspect { public static void main(..

스프링 AOP의 기본 개념: Advice, joinpoint,Pointcut,Aspect 2021-06-07

우선 이전 포스트에서 AOP(Aspect oriented programing)이란 공통의 기능과 핵심기능의 분리를 통해 재사용성을 높여주는 프로그래밍 기법이라고 설명하였고, 스프링은 AOP를 프록시를 통해 구현한다고 설명하였다. 일반적인 AOP구현 방식은 총 3가지 방법이 있다. 1.컴파일 시점에 공통의 기능을 구현한 코드를 넣어준다. 2.클래스 로딩 시점에 바이트 코드에 공통의 기능을 구현한 코드를 넣어준다. 3.런타임 중 프록시 객체를 생성해서 공통의 기능을 삽입한다. 이 3가지 방법중 스프링에서 사용하는 방식은 3번이다. 스프링 AOP는 프록시 객체를 자동으로 만들어서 필요한 시점(PointCut)에 실행해준다. 그래서 공통기능을 구현한 클래스만 알맞게 구현하면 된다. 우선 스프링의 AOP의 용어들..