[Spring] AOP-1

728x90
반응형

AOP란 상속을 통한 방법에 한계를 극복하기 위해서 등장한 방법입니다.

핵심 기능과 공통 기능을 분리 시켜놓고, 공통 기능을 필요로 하는 핵심 기능들에서 사용하는 방식 입니다.

 

 

Aspect : 공통기능

Advice : Aspect의 기능 자체

Joinpoint : Advice를 적용해야 되는 부분 (ex. 필드, 메서드) 스프링에서는 메서드만 해당한다.

Pointcut : Joinpoint의 부분으로 실제로 Advice가 적용되는 부분

Weaving : Advice를 핵심 기능에 적용하는 행위

 

 

스프링에서 AOP를 구현할때는 proxy를 이용합니다.

예를들어 Joinpoint 시작과 끝에서 Advice를 실행할때 Advice는 중간에 끼어드는 것이 아니라 proxy를 통해서 실행됩니다.

 

 

 

- XML 기반의 AOP 구현

작업순서

1) 의존 설정 (pom.xml)

<!--AOP-->
<dependency>
   <groubId>org.aspectj</groubId>
   <artifacId>aspectjweaver</artifacId>
   <version>17.4</version>
</dependency>

2) 공통 기능의 클래스 제작 (Advice 역할 클래스)

3) XML파일 설정

<bean id="logAop" class="com.javalec.ex.LogAop"/>

<aop:config>
  <aop:aspect id="logger" ref="logAop">
     <aop:pointcut id="publicM" experssion="within(com.javalec.ex.*)" />
     <aop:around pointcut-ref="publicM" method="loggerAop" />
  </aop:aspect>
</aop:config>  

 

728x90
반응형

'programming > spring' 카테고리의 다른 글

[Spring] xml 매퍼  (0) 2021.04.14
[Spring] MyBatis 설정하기  (0) 2021.04.13
[Spring] Java를 이용한 DI 설정 방법  (0) 2021.04.01
[Spring] xml 파일을 이용한 DI 설정 방법  (0) 2021.04.01
[Spring] DI 와 IOC컨테이너  (0) 2021.04.01