728x90
반응형
2020/05/30 - [🌎Web Application/Spring] - [Spring] AOP(Aspect Oriented Programming) part 1
2020/05/30 - [🌎Web Application/Spring] - [Spring] AOP(Aspect Oriented Programming) part 2
2. @Aspect 방식
@Aspect // Aspect 역할을 할 클래스라고 명시해줌
public class MyAspect{
@Before("execution(public void bark(..))")
public void before(JoinPoint join) {
System.out.println("Proxy Object : "+join.getThis().getClass());
System.out.println("jointPoint method"+join.getSignature().toShortString());
//공통기능(Advice)이 적용되는 메소드가 어떤 메소드 인지.
System.out.println("jointPoint class : "+join.getTarget().getClass());
// 공통기능(Advice)이 적용되는 메소드가 어떤 클래스 인지
System.out.println("강아지가 짖습니다.");
}
@After("execution(public * *(..))")
public void after(JoinPoint join) {
System.out.println("jointPoint method"+join.getSignature().toShortString());
System.out.println("jointPoint class : "+join.getTarget().getClass());
System.out.println("강아지가 짖지 않습니다.");
}
}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
<!-- 'proxy를 자동으로 생성하고 관리하겠다' 라는 의미 -->
<aop:aspectj-autoproxy/>
<bean id="myAspect" class="com.test00.MyAspect"></bean>
<!-- CC -->
<bean id="myDog" class="com.test00.Dog"></bean>
<!-- AOP 설정 -->
<!--<aop:config>
<aop:aspect ref="myAspect">
<aop:before method="before" pointcut="execution( public * *( .. ) )"/>
<aop:after method="after" pointcut="execution( public * *( .. ) )"/>
</aop:aspect>
</aop:config>
-->
</beans>
결과는 전과 같다.
728x90
반응형
'⚙️Backend > Spring' 카테고리의 다른 글
[Spring] MVC Project part 2 (0) | 2020.05.30 |
---|---|
[Spring] MVC Project part 1 (0) | 2020.05.30 |
[Spring] AOP(Aspect Oriented Programming) part 2 (0) | 2020.05.30 |
[Spring] AOP(Aspect Oriented Programming) part 1 (0) | 2020.05.30 |
[Spring] DI (Dependency Injection) part 6 (0) | 2020.05.30 |