黑马程序员技术交流社区

标题: javaweb [打印本页]

作者: 马文帅    时间: 2019-7-7 10:10
标题: javaweb
一,什么是SpringAop?

        所谓的springaop就是面向切面编程,就是在你的原有项目功能上,通过aop去添加新的功能,这些功能是建立在原有的功能基础上的,而且不会修改原来的动能代码以及功能逻辑。例如你用银行卡购物,购物付款,这是一个功能。付款后,银行向你的手机发送一条取钱信息,这就是新加的功能。也就是实现了增强

二,Springaop的实现机制是什么?

        横向抽取机制,那么什么是横向抽取机制呢?所谓的横向抽取机制就是使用动态的代理的方式(cglib代理和jdk代理)来实现对象的代理,实际上我们操作的是假对象。既然有横向抽取机制,那么有没有纵向代理模式呢 ?答案是有的。那么什么是纵向抽取呢?纵向抽取就是把公共的方法写在父类里,所有的类都继承父类,这样就是能调用父类的方法。例如,你购物付款是一个子类的功能,你可能还会取款,这也是一个功能,而在他们结束之后,银行都会发送一个信息给你,这又是一个功能,这个银行给你发送信息是个公共的方法,所以这个发信息的功能就是属于父类的。子类继承父类并调用父类的方法就是纵向抽取。

三,Springaop的使用场景

    一般来说:打印日志,还有短信通知啊,权限验证等,都可以使用aop来实现。

四,sringaop的两种实现方式

        (1)xml文件配置方式

          (2)注解的方式实现

    那么,下面我们就这两个方式以demo的形式讲解一下。

        方式一:xml方式配置

            a:创建被加强类(链接点类)






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2