这种加载方式,主要是靠xml文件的配置。
1.普通类
public class CalculatorAnno {
public int add(int i,int j){
int result = i +j;
return result;
}
public int mil(int i,int j){
int result = i - j;
return result;
}
public int mul(int i,int j){
int result = i*j;
return result;
}
public int div(int i,int j){
int result = i/j;
return result;
}
}
2.Aspect的类
public class CalculatorAspect {
public void logbefor(JoinPoint joinpoint){
Object[] arr=joinpoint.getArgs();
System.out.println("befor the method "+joinpoint.getSignature().getName()+" calculating....."+Arrays.asList(arr));
}
public void logafter(){
System.out.println("after calculating....");
}
3.xml的配置
<bean id="calculator" class="spring.aop.xml.CalculatorAnno">
</bean>
<bean id="calAspect" class="spring.aop.xml.CalculatorAspect">
</bean>
<aop:config>
<aop:aspect id="calAspect" ref="calAspect">
<aop:pointcut expression="execution(* spring.aop.xml.CalculatorAnno.*(..))" id="CApintcut"/>
<aop:before method="logbefor" pointcut-ref="CApintcut"/>
<aop:after method="logafter" pointcut-ref="CApintcut"/>
<aop:after-throwing method="logexception" throwing="e" pointcut-ref ="CApintcut"/>
<aop:after-returning method="logresult" returning="result" pointcut-ref="CApintcut"/>
</aop:aspect>
</aop:config>