`
零度弥合
  • 浏览: 19269 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

【spring学习笔记二】AspactJ常见注解和xml实现

 
阅读更多

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>

 

 

分享到:
评论

相关推荐

    Spring的学习笔记

    (二) init-method destroy-method 不要和prototype一起用(了解) 15 第六课:annotation方式Spring 16 一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier ...

    SpringAop学习笔记以及实现Demo

    SpringAOP学习笔记以及四个可运行的Demo,涵盖经典代理模式、基于注解、基于xml配置这3方面的Demo

    spring2.5 学习笔记

    (二) init-method destroy-method 不要和prototype一起用(了解) 15 第六课:annotation方式Spring 16 一、 开始使用annotation配置Spring 16 二、 @Autowired、@Qualifier 16 (一) @Autowired 16 (二) @Qualifier ...

    spring-cloud:springCloud学习笔记

    SpringCloud学习笔记1. maven父子项目父工程配置新项目,maven,父工程名称字符编码,设置,编辑器文件编码注解功效激活java编译选择1.8 文件类型文件过滤删除掉父工程下的src,只保留一个pom.xml父工程的pom.xml...

    spring学习笔记

    目录 1.1 Spring 框架学习路线:...........................................................................................................................4 1.2 Spring 框架的概述:...........................

    springboot学习思维笔记.xmind

    springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...

    xmljava系统源码-SpringInAction4:《SpringInAction4th》学习笔记

    xml java系统源码 SpringInAction4 《Spring In Action ...注解方式可以实现更细粒度的自动装配,Spring容器默认禁用注解装配,要在配置文件中开启 配置自动扫描 在基于Java的配置中使用@Configura

    spring 4.doc

    资源是关于Spring 4的学习笔记,Spring有Bean配置,属性注入方式,Spring分模块开发,Aop技术,Jdbc模板使用,事务管理(其中包括XML开发方式和注解开发方式)

    CXF的学习笔记

    Frontends:CXF 支持多种“Frontend”编程模型,CXF 实现了 JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一个“simple frontend”允许客户端和 EndPoint 的创建,而不需要 Annotation 注解。CXF 既支持 WSDL ...

    spring完整讲义.rar

    该文档主要用于spring学习者,其中包含详细的spring的知识点及通俗介绍,包含:IOC、DI、AOP、spring的xml注入与注解注入方式、SSH整合

    Java学习笔记-个人整理的

    {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....

    thinking-in-spring:学春天

    春天学习笔记 Bean初始化 BeanDefinitionBuilder 新的GenericBeanDefinition Bean的命名(非强制性) BeanNameGenerator AnnotationBeanNameGenerator Bean的别名(一般XML配置) 别名 BeanDefinition的注册 ...

Global site tag (gtag.js) - Google Analytics