如果您有任何疑问,可以在下面询问或输入您要寻找的!
实际生产环境中,存在着在现有运行项目功能的业务逻辑上,需要拓展新增业务功能的情况,此时大概率我们改的项目不是我们开发的,有可能存在以下问题:
那么,问题就来了,怎么办???SpringAOP就出现了
比如上图所示,需要扩展的是A对象的testA()方法。SpringAOP的具体解决思路:
我们将要进行功能扩展相关的材料以及对应的组织规则告诉Spring容器,Spring容器帮我们动态创建一个代理对象。我们直接从Spring容器中获取代理对象完成功能开发。
前置通知类:
创建一个普通的java类,实现MethodBeforeAdvice接口,重写before方法,在before方法中声明扩展前的逻辑代码。
后置通知类:
创建一个普通的Java类,实现AfterReturningAdvice接口,重写after方法,并在after方法中声明扩展后的逻辑代码。
资源对象:
声明组装规则:(使用AOP标签完成)
注意:如果让Spring容器对象某个bean对象按照AOP进行功能扩展,则从Spring容器中使用该对象的ID获取的对象已经不是其本身了,而是他的代理对象
要进行功能扩展的对象,相当于A对象
完成功能扩展的对象,相当于B对象.
要进行功能扩展的方法,相当于testA()方法
在切点之前执行的扩展方法
在切点之后执行的扩展方法
由前置通知+切点+后置通知形成的横向执行的面
由前置通知+切点+后置通知形成切面的过程
面向切面的编程
我是这篇文章的创作本人 请您把文章删了 ...
评论于 华为eNSP最稳定的装法