您的位置:首页 > 编程语言 > Java开发

Spring aop测试实例

2014-05-04 09:13 225 查看
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"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: