美文网首页
NO.92 Spring AOP

NO.92 Spring AOP

作者: smallnumber | 来源:发表于2017-10-23 21:38 被阅读0次

    项目中如何在不修改核心业务的前提下植入新功能?

    例如:

    1)事务处理

    2)日志处理

    3)缓存处理

    4)权限处理

    5).................

    在项目中我们通常将核心业务(核心关注点)作为第一步实现,扩展业务(横切关注点)作为第二步实现.

    1.扩展实现如何植入?

    1)硬编码:修改核心业务添加扩展业务

    2)抽取扩展业务,通过代理植入扩展业务

    3)借助Spring AOP(底层依托于AspectJ框架)

    2.代理模式分析及应用?

    1)静态代理(自己写代理类)

    2)动态代理(依托于JDK API&反射机制)

    3)CGLIB代理(被代理对象可以不实现接口)

    3.Spring AOP

    1) AOP 概述 ?

    a)Spring 中的一个核心组件(整合Aspectj框架实现)

    b)面向切面编程,此切面通常称之为横切面

    c)可以在对象运行时动态植入横切面功能.

    2) AOP 相关术语?

    a)Aspect:切面(封装了扩展业务的一个对象类)

    b)Pointcut:切入点(在哪个点上添加扩展业务:一般可以理解为方法集合)

    c)JoinPoint: 连接点(一般指切入点中的一个方法)

    d)Advice 通知(定义扩展业务中的相关步骤)

    d.1)@Before

    d.2)@After

    d.3)@AfterThrowing

    d.4)@AfterReturn

    3)AOP 在spring中的实现

    a) 创建一个Java maven项目(spring-aop-02)

    b) 添加AOP依赖(pom.xml)

    c) 添加spring配置文件(例如:spring-aop.xml)

    d) 创建业务接口及实现类(例如UserService)

    e) 创建切面类对象(扩展业务类对象)

    d) 创建单元测试类,为核心业务添加扩展业务

    相关文章

      网友评论

          本文标题:NO.92 Spring AOP

          本文链接:https://www.haomeiwen.com/subject/lzlzuxtx.html