基于注解的测试Spring-aop通知顺序
来源:互联网 发布:node.js 安装教程 编辑:程序博客网 时间:2024/05/17 09:04
基于注解的测试Spring-aop通知顺序
方法的接口
package com.bird.service;public interface PersonServer { public void save(String name); public void update(String name, Integer id); public String getPersonName(Integer id);}
接口的实现
package com.bird.service.impl;import com.bird.service.PersonServer;public class PersonServiceBean implements PersonServer{ @Override public void save(String name) { System.out.println("我是save方法"); // throw new RuntimeException(); } @Override public void update(String name, Integer id) { System.out.println("我是update()方法"); } @Override public String getPersonName(Integer id) { System.out.println("我是getPersonName()方法"); return "xxx"; } }
定义切点和通知
package com.bird.service;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.*;@Aspect public class MyInterceptor { @Pointcut("execution(* com.bird.service.impl.PersonServiceBean.*(..))") private void anyMethod(){}//定义一个切入点 @Before("anyMethod() && args(name ,id)") public void doAccessCheck(String name ,Integer id){ System.out.println(name + id); System.out.println("前置通知+1"); } @Before("anyMethod() && args(name )") public void doAccessCheck1(String name ){ System.out.println(name ); System.out.println("前置通知"); } @AfterReturning("anyMethod()") public void doAfter(){ System.out.println("后置通知"); } @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; } }
Spring 的配置文件
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <!-- 扫描com.ioc下的所有类,自动为spring容器管理 --> <context:component-scan base-package="com.ioc"/> </beans>
测试
package com.ioc;import com.ioc.inerface.IPerson;import com.ioc.util.BeanFactory;public class SpringIocTest { public static void main(String[] args) { IPerson perSon = (IPerson) BeanFactory.getBean("person"); perSon.call(); BeanFactory.closeBeanFactory(); } }
0 0
- 基于注解的测试Spring-aop通知顺序
- 基于注解的Spring AOP实现demo(测试通知顺序)
- spring框架基于注解aop的通知
- Spring基于注解的AOP测试
- Spring AOP-通知顺序
- Spring-AOP:基于AspectJ注解的AOP
- Spring -- 基于XML的AOP通知配置
- Spring 注解实现AOP通知
- spring aop 基于注解
- Spring aop基于注解
- Spring AOP - 基于注解
- Spring -- AOP入门基础&基于Aspect的AOP通知用法
- Spring基于注解@AspectJ的AOP
- Spring基于注解@AspectJ的AOP
- 基于注解的Spring AOP例子
- 基于注解的spring AOP简单实现
- Spring中基于注解的AOP
- spring AOP 基于注解的匹配规则
- 【LintCode】Reverse Words in a String 翻转字符串
- spring中如何读取.properties配置文件
- 互联网协议入门(二) 作者:阮一峰
- JavaWeb如何将后台数据传递到前台页面HttpServletResponse和HttpServletRequest
- 通过DiffUtil高效更新RecyclerView
- 基于注解的测试Spring-aop通知顺序
- Hashtable源码剖析
- selenium之 文件上传所有方法整理总结
- 关于一个失败程序生涯的自省。
- 《01. oralce 对象管理--表》
- Android侧边滑动菜单
- 面试技术汇总
- 《02. oracle 对象管理--约束》
- CentOS7+CDH2.7.2安装