Spring中开启切面代理AOP

本文介绍了如何在Spring中开启切面代理,包括基于JDK和CGLIB的代理模式。详细阐述了基于注解和基于表达式的两种切面代理方式,并通过实例展示了它们的使用。同时,提到了切面表达式的强大描述性。
摘要由CSDN通过智能技术生成

Spring中开启切面代理

在JavaEE开发中,经常遇到日志记录/登录检查的需求,如果要给每个方法都加上同样的代码,费时费力还不容易扩展,于是就有了切面这种东西,说白了就是生成一个代理,在某方法执行前后加上自己的逻辑,Spring中有两种代理模式,一种是基于JDK的接口代理(不能代理类),一种是基于CGLIB的代理(接口和类都可以),CGLIB是依赖于ASM的字节码操作类库,可以方便的生成指定类的子类代理,实现方法增强

Spring中有两种切面代理方式:基于注解和基于表达式,基于注解一般用于被代理的类方法较少的时候,不然写完代理每个方法上面都要加上注解,基于表达式可以进行匹配,例如com.test包下面以qry开头的方法加上切面代理

环境
  • jar包

在项目中引入如下jar包,我的Spring版本是4.1.4.RELEASE

// gradle 
compile(
    'org.aspectj:aspectjweaver:1.9.2',
    'org.aspectj:aspectjrt:1.8.13'
)

//maven 
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjrt</artifactId>
    <version>1.8.13</version>
</dependency>
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.9.2</version>
</dependency>
  • 配置
    在spring-mvc.xml中配置如下内容,开启切面(web.xml中org.springframework.web.servlet.DispatcherServlet引入了spring-mvc.xml)
<?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"
       xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码狂魔v

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值