NO.92 Spring AOP

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

例如:

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) 创建单元测试类,为核心业务添加扩展业务

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,206评论 19 139
  • 团队开发框架实战—面向切面的编程 AOP 引言 软件开发的目标是要对世界的部分元素或者信息流建立模型,实现软件系统...
    Bobby0322阅读 4,215评论 4 49
  • 本章内容: 面向切面编程的基本原理 通过POJO创建切面 使用@AspectJ注解 为AspectJ切面注入依赖 ...
    谢随安阅读 3,235评论 0 9
  • 什么是Spring Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Jav...
    jemmm阅读 16,591评论 1 133
  • 韩玉琴今年36一枚辣妈级别的人物,苗条的身材配上不同的职业装高跟鞋,每次走来都是一股lucky(韩玉琴自调香水的名...
    aqwert阅读 212评论 0 0