1、service代码:
package com.huizhan.domain.service;
public interface TestService {
public void test();
public void test001();
}
2、service实现层代码:
package com.huizhan.domain.service.impl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.huizhan.domain.service.TestService;
@Service
@Transactional
public class TestServiceImpl implements TestService{
@Override
public void test() {
System.out.println("**********************service中的测试*******************8");
}
@Override
public void test001() {
System.out.println("test001*****************");
}
}
3、AopInterceptor拦截器定义
package com.huizhan.web.interceptors;
import org.aspectj.lang.JoinPoint;
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;
/**
* AOP切面
*
* @author feng
*
*/
// 声明此类为一个切面
@Aspect
public class AopInterceptor {
// execution为执行的意思,*代表任意返回值,然后是包名,.*意思是包下面的所有子包。(..)代表各种方法.
@Pointcut("execution(* com.huizhan.domain.service.impl.TestServiceImpl.test(..))")
private void anyMethod() {
}// 定义一个切入点
@Before("anyMethod()")
public void doAccessCheck() {
System.out.println("前置通知");
}
@AfterReturning("anyMethod()")
public void doAfter(JoinPoint joinPoint) {
System.out.println("***************后置通知,方法名字="
+ joinPoint.getSignature().getName());
}
@After("anyMethod()")
public void after() {
System.out.println("最终通知");
}
@AfterThrowing("anyMethod()")
public void doAfterThrow() {
System.out.println("例外通知");
}
@Around("anyMethod()")
public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
System.out.println("进入环绕通知");
Object object = pjp.proceed();// 执行该方法
System.out.println("退出方法");
return object;
}
}
4、applicationContext.xml配置
<!--************************ aop测试bean的配置 开始*************-->
<bean id="testInterceptors" class="com.huizhan.web.interceptors.TestInterceptors"/>