深入理解Spring IOC和AOP

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版权协议,转载请附上原文出处链接和本声明。