spring系列(二)——AOP的两种实现方式(xml和注解)

资源链接

源码地址:https://code.csdn.net/luo4105/spring-aop.git

文章推荐:https://www.ibm.com/developerworks/cn/java/j-lo-springaopcglib/

简介

AOP:面向切面编程,是作为面向对象编程的一种补充,专门用于处理系统中分布于各个模块中的交叉关注点的问题,在javaEE项目中,常用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP的实现技术分为两大类,静态代理和动态代理,静态代理的实现时在java类编译时,生成 AOP 代理类;动态代理是在java内存中生成AOP代理类,AspectJ是静态代理,Spring AOP使用的是动态代理。

常用概念

1.Adivice(通知/增强处理):是指在特定连接点,AOP框架执行的操作,也就是上面说的相同代码段。

2.Joinpoint(连接点):程序执行过程中明确的点,如方法的调用或异常抛出,如方法1在方法2中的调用就是一个连接点。

3.Pointcut(切入点):一个通知将被引发的一系列连接点的集合。AOP框架必须允许开发者指定切入点,例如,使用正则表达式,通俗的理解是所有需要通知的目标的集合

4.Aspect(切面):通知和切入点共同组成了切面

5.Target(目标):即被通知的对象

6.(proxy)代理:参见设计模式里面的代理模式

7.weaving(织入):把切面应用到目标对象来创建新的代理对象的过程

Spring支持五种类型的通知,分别是before、after-returning、after-throwing、arround、introduction的使用,这里模拟一个需要使用事务和日志使用的场景,使用arround和after-returning。

AOP的实现

AOP是面向切面编程,理解这个需要多敲几次。

它采用动态代理的方式,实现在批量对方法进行前置操作、后置操作、环绕操作。

Aop的常用操作:before、around、after。

Java中AOP的常用实现是xml配置和使用@Aspect注解

xml配置

使用xml配置的方式需要导入spring-aop包,其maven为

<properties>
    <org.springframework-version>4.3.7.RELEASE</org.springframework-version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java-version>1.8</java-version>
</properties>

<dependencies>
    <!-- spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans<
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值