AspactJ常见注解
@Pointcat:定义切入点
@Before:前置通知,调用匹配方法之前执行
@AfterReturning:后置通知,通常在一个方法返回的时候执行
@AfterThrowing:异常通知,抛出异常通知在一个方法抛出异常后执行
@After:最终通知,不论一个方法是如何结束的,最终通知都会运行,通常用它来释放资源。
@Around:环绕通知,环绕通知在一个方法执行之前和之后执行,它使得一个通知有机会在方法之前和之后进行,而且它可以决定一个方法什么时候执行,如何执行,甚至是否执行。
Pointcat
切入点表达式execution(*test(*))&&args(param)
例:@Pointcut("execution(public void com.mihe.dao.impl.StudentDaoImpl.*Student())")
起首execution(*test(*))匹配任何方法名为test,且有一个任何类型的参数
args(param)可以匹配参数
修饰符是可选的
返回值是必填的,但可以用*表示统配
类型声明可选,也可以是任何类型
方法名必填,但也可以用*做模糊匹配,比如上例就是匹配所有以Student结尾的方法
参数列表:
()表示没有参数
(..)表示匹配接收任意个参数
(..,java.lang.String)表示匹配最后一个参数是字符串,前面可以有任意多个任意类型的参数
(*,java.lang.String)表示匹配最后一个参数是字符串,前面只可以有一个任意类型的参数
异常也可以匹配,全名就可以,如果有负数个就用都好分割。
AspectJ的xml实现
在Srping配置文件中,所有AOP相关的定义必须放在<aop:config>标签下,该标签下可以有<aop:pointcut><aop:advisor><aop:aspect>标签,配置顺序不可变
<aop:pointcut>用来定义切入点,该切入点可以重用
<aop:advisor>用来定义只有一个通知和一个切入点的切面
<aop:aspect>用来定义切面,该切面可以定义多个切入点和通知,而且标签内部通知和切入点是无序的,
配置切入点
<aop:pointcut expression="execution(public void com.mihe.dao.impl.StudentDaoImpl.*Student())" id="studentPointcat"/>
配置切面
<aop:aspect id="studentAspect" ref="studentAspectJInterceptor">
<aop:before method="beforeMetord" pointcut-ref="studentPointcat"/>
<aop:after-returning method="afterReturningMetord" pointcut-ref="studentPointcat" returning="s"/>
</aop:aspect>
相关推荐
(二) init-method destroy-method 不要和prototype一起用(了解) 15 第六课:annotation方式Spring 16 一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier ...
SpringAOP学习笔记以及四个可运行的Demo,涵盖经典代理模式、基于注解、基于xml配置这3方面的Demo
(二) init-method destroy-method 不要和prototype一起用(了解) 15 第六课:annotation方式Spring 16 一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier ...
SpringCloud学习笔记1. maven父子项目父工程配置新项目,maven,父工程名称字符编码,设置,编辑器文件编码注解功效激活java编译选择1.8 文件类型文件过滤删除掉父工程下的src,只保留一个pom.xml父工程的pom.xml...
目录 1.1 Spring 框架学习路线:...........................................................................................................................4 1.2 Spring 框架的概述:...........................
springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...
xml java系统源码 SpringInAction4 《Spring In Action ...注解方式可以实现更细粒度的自动装配,Spring容器默认禁用注解装配,要在配置文件中开启 配置自动扫描 在基于Java的配置中使用@Configura
资源是关于Spring 4的学习笔记,Spring有Bean配置,属性注入方式,Spring分模块开发,Aop技术,Jdbc模板使用,事务管理(其中包括XML开发方式和注解开发方式)
Frontends:CXF 支持多种“Frontend”编程模型,CXF 实现了 JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一个“simple frontend”允许客户端和 EndPoint 的创建,而不需要 Annotation 注解。CXF 既支持 WSDL ...
该文档主要用于spring学习者,其中包含详细的spring的知识点及通俗介绍,包含:IOC、DI、AOP、spring的xml注入与注解注入方式、SSH整合
{14.2}XML的设计}{205}{section.14.2} {14.3}DTD/Schema}{205}{section.14.3} {14.3.1}SAX应用}{206}{subsection.14.3.1} {14.4}dom4j}{207}{section.14.4} {14.5}XPath}{210}{section.14.5} {14.6}apache....
春天学习笔记 Bean初始化 BeanDefinitionBuilder 新的GenericBeanDefinition Bean的命名(非强制性) BeanNameGenerator AnnotationBeanNameGenerator Bean的别名(一般XML配置) 别名 BeanDefinition的注册 ...