@Service用于标注service组件。@Repository标注dao组件
Jettison
1.需要导入aspectj包下的两个jar:aspectjrt.jar,aspectjweaver.jar.导入cglib包下的cglib-nodep-2.1_3.jar。j2ee包下的common-annotations.jar,spring.jar
2.在spring配置文件中:头部需要有:xmlns:aop="http://www.springframework.org/schema/aop",xsi:schemaLocation需要有
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
然后需要加<aop:aspectj-autoproxy />
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
@Aspect
public class AopInterceptor {
@Pointcut("execution (*com.huawei.service.impl.PersonServiceImpl.*(..))")
private void anyMethod(){}
@Before("anyMethod()")
public void doAccessCheck(){
System.out.println("前置通知");
}
@AfterReturning("anyMethod()")
public void doAfterReturning(){
System.out.println("后置通知");
}
@After("anyMethod()")
public void doAfter(){
System.out.println("最终通知");
}
@AfterThrowing("anyMethod()")
public void dofterThrowing(){
System.out.println("异常通知");
}
@Around("anyMethod()")
public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
// if(){//判断用户权限
System.out.println("进入方法");
Object result = pjp.proceed();
System.out.println("退出方法");
// }
return result;
}