Spring是什么?
它是一个容器框架,用来装javabean(java对象),管理应用对象的配置和生命周期,作为中间层框架可以起一个连接作用,比如说把SpringMVC和Mybatis粘合在一起运用,可以让我们的开发更快,更简洁。
IOC是什么?
容器概念、控制反转、依赖注入
ioc容器:实在上就是一个map,里面存的是各种对象(在xml里配置的bean节点,还有一些注解@repository、@service、@controller、@component),启动时会读取配置文件或者扫描注解,根据类名使用反射创建对象放到map里面。
控制反转:
没有引入IOC容器之前,对象A依赖于对象B。那么对象A在初始化或者运行到某一点的时候,自己必须主动去创建对象B或者使用已有对象B。这样控制权都在自己手上。
引入IOC容器之后,对象A与对象B就直接失去的联系,当对象A运行到需要对象B的时候,IOC容器去主动创建一个对象B注入到对象A需要的地方。
以上对比出来,没有引入IOC是控制权在自己手中,需要自己去创建对象,引入了IOC,就把创建对象的控制权交给了IOC去创建,这样控制权限就颠倒了,这就是控制反转的由来。
依赖注入:
其实就是把对象与对象之间的依赖关系注入的IOC容器中,然后解析出这个类的实例。
AOP是什么?
AOP(面向切面)是一种横切技术,相比OOP(面向对象)一切皆对象,从上至下的开发,提供从另一个角度来考虑程序结构以完善(面向对象)。
AOP能做什么?AOP的带来的好处?
AOP可以将业务无关的代码,却为业务模块所共同调有的逻辑和责任, 例如事物处理,日志管理、权限控制等,封装起来,减少代码重复,降低模块间的耦合度,有利于后续可扩展性与可维护性。
1.降低模块的耦合度。
2.可维护性增强。
3.代码复用。(是面向对象理念中的封装)
总结
Spring是一个J2EE轻量级框架,作为中间层也可以连接各种其他框架一块使用,Spring的两个核心东西AOP与IOC。AOP是为了完善OOP的不足,降低模块的耦合度,加强了可维护性。IOC把对象与对象之间强依赖给中断了,当对象A需要对象B时,我们不需要自己去创建对象B了,这个创建由IOC完成了,对象因此到达解耦。