Spring IOC
依赖反转是意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。是一种设计思想。
IOC架构图
软件系统中耦合的对象
IOC解耦过程
IOC和DI关系
控制反转(IOC)是Spring框架的实现解耦的核心思想。
控制反转一般分为两种类型,一个是依赖注入(DI)和依赖查找(DL),依赖注入应用更广泛。
四连问
1、谁依赖于谁
应用程序依赖于IoC容器
2、为什么需要依赖
应用程序需要IoC容器来提供对象需要的外部资源
3、谁注入谁
IoC容器注入了某个对象,应用程序依赖的对象
4、注入了什么
注入某个对象的外部资源(对象,常量,资源)
正转和反转的区别
正转:
1、传统应用程序是由我们在对象主动控制
反转:
1、由容器来帮忙及注入依赖对象
Ioc优缺点
优点:
1、实现组件之间的解耦,提高程序的灵活性和可维护性
缺点:
2、对象是由反射生成的,耗性能。
Spring AOP
AOP利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为“Aspect”,即方面。所谓“方面”,简单地说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。
两者的本质区别:拦截器(Interceptor)是基于Java的反射机制,而过滤器(Filter)是基于函数回调。从灵活性上说拦截器功能更强大些,Filter能做的事情,都能做,而且可以在请求前,请求后执行,比较灵活。Filter主要是针对URL地址做一个编码的事情、过滤掉没用的参数、安全校验(比较泛的,比如登录不登录之类),太细的话,还是建议用interceptor。不过还是根据不同情况选择合适的。
原图文链接:深入理解Spring IOC和AOP
版权声明:本文为u010760374原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。