1.类的注释
@Component("calculatorAnno") //bean的前置注释
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类的注释
@Aspect() //声明类是Aspect
@Component //bean的声明
public class CalculatorAspect {
@Pointcut("execution(* spring.aop.anno.CalculatorAnno.*(..))") //方法的切入点
public void aspectPointcut(){
}
@Before("aspectPointcut()") //声明是个事前方法,带入了切入点
public void logbefor(JoinPoint joinpoint){
Object[] arr=joinpoint.getArgs();
System.out.println("befor the method "+joinpoint.getSignature().getName()+" calculating....."+Arrays.asList(arr));
}
3.xml中的配置
<!-配置需要扫描的包,自动加载声明了的bean->
<context:component-scan base-package="spring.aop.anno"></context:component-scan>
<!-启用切切面->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>