这种加载方式,主要是靠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>
本文详细介绍了如何使用Spring框架中的AOP(面向切面编程)来增强CalculatorAnno类的功能,通过创建CalculatorAspect切面类并进行xml配置,实现了在CalculatorAnno类的方法调用前后添加日志记录。
514

被折叠的 条评论
为什么被折叠?



