Spring AOP
开心的静静
java 开发
展开
-
循序渐进之Spring AOP(1) - 原理
AOP全称是Aspect Oriented Programing,通常译为面向切面编程。利用AOP可以对面向对象编程做很好的补充。用生活中的改装车比喻,工厂用面向对象的方法制造好汽车后,车主往往有些个性化的想法,但是又不想对车进行大规模的拆卸、替换零件,这时可以买一些可替换的零件、装饰安装到汽车上,并且这些改装应该很容易拆卸,以避免验车时无法通过。先看一个实际例子:有一个用户登录的方法,某一段时间...转载 2018-05-03 16:29:44 · 100 阅读 · 0 评论 -
循序渐进之Spring AOP(2) - 基本概念
学习AOP前要先了解几个重要术语:Joinpoint、Pointcut、Advice仍然以改装车比喻,拿到心爱的汽车后想做改装,第一件事是什么?找到要改装的地方。车上可改装的地方很多,但每个人感兴趣的点并不一样,有人改装车灯,有人改装轮毂,也有人同时都改,确定位置后装上零件、装饰,就完成了一次"AOP"。在上面的比喻中,可改装的地方可以看做是连接点(Joinpoint),如类的某个方法调用前、调用...转载 2018-05-03 16:31:59 · 93 阅读 · 0 评论 -
循序渐进之Spring AOP(3) - 配置代理
上一篇介绍了几种Advice(增强),并通过代码演示了生成代理的方式,下面来看通过配置文件配置方式把Advice织入目标类。注意,配置文件方式仍然不是Spring AOP的最好方式,学习配置方式也是为了循序渐进的掌握内核技术。接口SmartCar[java] view plain copypublic interface SmartCar { void lock(String userN...转载 2018-05-03 16:33:04 · 125 阅读 · 0 评论 -
循序渐进之Spring AOP(4) - Introduction
前面描述的几种增强(Advice)都是在目标方法范围内织入,而引介(Introduction)不同,直接在类级别上添加目标未实现的接口方法。在Spring中可以通过扩展DelegatingIntroductionInterceptor类来实现引介增强类。下面通过这种方式给一辆普通汽车加上无人驾驶功能接口Auto[html] view plain copypublic interface Auto ...转载 2018-05-03 16:33:55 · 926 阅读 · 0 评论 -
循序渐进之Spring AOP(5) - 创建切面
在掌握了可用的增强后,接下来要做的就是精确的描述切点。前面的示例都是指定一个目标类并把增强织入到所有方法中,实际开发显然会有更精细的筛选需求,比如对所有类中名称以test结尾的方法加入监控执行时间,或者指定某些方法仅在输入参数是指定值时做某些特殊处理以解决临时性需求。Spring中用Pointcut接口表示一个切点,其下设有多个实现类,按使用场景分主要有静态切点、动态切点、流程切点和复合切点等。1...转载 2018-05-03 16:34:39 · 142 阅读 · 0 评论 -
循序渐进之Spring AOP(6) - 使用@Aspect注解
前面几节的示例看起来让人沮丧,要记忆如此多的接口、类和继承关系,做各种复杂的配置。好在这些只是一种相对过时的实现方式,现在只需要使用@Aspect注解及表达式就可以轻松的使用POJO来定义切面,设计精妙正如Spring MVC的@Controller。1 示例仍然使用上一节的"骑士和剑士"的例子,目标类Horseman和Swordman[java] view plain copypublic cl...转载 2018-05-03 16:35:16 · 170 阅读 · 0 评论