Spring概述:
- Spring主要优势 —— 解耦;
- Spring支持和其他框架集成,其他框架以插件的形式和spring结合在一起,整个项目以spring为主干,各种功能框架作为枝干,随插随拔,耦合度非常低;
- Spring大量应用反射机制,效率并不是非常高。
核心:
- DI/IOC:依赖注入/控制反转。某一个类中需要使用其他类中的方法来实现业务时,一般采用在前者中声明后者并实例化,然后用后者的实例在前者中调用后者的方法,这种情形下,前者依赖后者,被依赖类的对象生灭由依赖类控制,这种做法耦合度较高。在使用spring的情形下,通过反射机制,类统一在spring中注册,被依赖对象统一由spring注入到依赖对象中。依赖注入和控制反转是站在不同的角度对同一动作的不同描述,DI,被依赖对象由spring容器实例化并注入到依赖对象中,IOC,被依赖对象的生灭由依赖对象控制转换为spring容器。
- AOP:面向切片编程,把一个业务的各个部分分成独立的不同层次,各个层次之间没有太大耦合,可以独立修改并组合。典型的例子是在不修改原函数的基础上给函数的执行前后添加日志信息,可以通过spring配置切片的方式实现日志添加代码的切人,此种方式利用了java的动态代理模式。
应用:springMVC和ssh2的主要区别在于他们的Controler层实现。
- springMVC:sping框架实现控制层;
- ssh2:struts2框架实现控制层,依赖注入广泛使用,在事务处理模块用到了面向切片。
Spring核心模拟:
- AOP