码迷,mamicode.com
首页 > 编程语言 > 详细

Spring的AOP操作

时间:2017-12-30 20:03:32      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:增加   ring   不能   注解   ram   语法   div   切面   操作   

在Spring里面进行AOP操作,使用AspectJ实现。

AspectJ是什么?

AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法,所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。

(1)AspectJ不是Spring的一部分,和Spring配合使用

(2)Spring2.0以后增加了对AspectJ切点表达式的使用

使用AspectJ实现AOP由两种方式

1.基于AspectJ的配置文件方式

2.基于AspectJ的注解方式

AOP操作准备

1.导入jar包

技术分享图片

2.引入约束

<?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:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- bean definitions here -->

</beans>

使用表达式配置切入点

常用的表达式

execution(<访问修饰符><返回类型><方法所属类><方法名>(<参数>)<异常>)

其中红色字体的部分时不能省略的,各部分都支持通配符 “*” 来匹配全部。

  比较特殊的为形参表部分,其支持两种通配符

  •   "*":代表一个任意类型的参数;
  •   “..”:代表零个或多个任意类型的参数。

  例如:

    ()匹配一个无参方法

    (..)匹配一个可接受任意数量参数和类型的方法

    (*)匹配一个接受一个任意类型参数的方法

    (*,Integer)匹配一个接受两个参数的方法,第一个可以为任意类型,第二个必须为Integer。

AspectJ的AOP操作

1.创建两个类

技术分享图片

技术分享图片

2.在xml中进行配置

技术分享图片

3.写代码进行测试

技术分享图片

这里比较特殊的是环绕增强,因为中间才是方法执行,这里需要用到一个参数

技术分享图片

技术分享图片

配置完了就行测试

技术分享图片

 

 

Spring的AOP操作

标签:增加   ring   不能   注解   ram   语法   div   切面   操作   

原文地址:https://www.cnblogs.com/wxw7blog/p/8150859.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!