/**
* 定义通知类
*/
package cn.itcast.service;
import org.aspectj.lang.ProceedingJoinPoint;public class MyAdvice{
public void doAccessCheck(String name) {
System.out.println("前置通知:"+ name);
}
public void doAfterReturning(String result) {
System.out.println("后置通知:"+ result);
}
public void doAfter() {
System.out.println("最终通知");
}
public void doAfterThrowing(Exception e) {
System.out.println("例外通知:"+ e);
}
public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
//if(){//判断用户是否在权限
System.out.println("进入方法");
Object result = pjp.proceed();
System.out.println("退出方法");
//}
return result;
}
}
/**
* 定义业务类
*/
package cn.itcast.service.impl;
import cn.itcast.service.PersonService;
public class PersonServiceBean implements PersonService {
public String getPersonName(Integer id) {
System.out.println("......");
return "xxx";
}
public void save(String name) {
System.out.println("......");
}
public void update(String name, Integer id) {
System.out.println("......");
}
}
/**
* 配置spring的配置文件
*/
1.写入业务类和通知类
<bean id="personService" class="cn.itcast.service.impl.PersonServiceBean" />
<bean id="myAdvice" class="cn.itcast.service.myAdvice" />
2.配置aop的config
<aop:config>
<aop:aspect id="asp" ref="myAdvice">
<aop:pointcut id="mycut" expression="execution (* cn.itcast.service.impl.PersonServiceBean.*(..))"/>
<aop:before method="doAccessCheck" pointcut-ref="mycut"/>
</aop:aspect>
</aop:config>