目录
Spring介绍
Spring框架是Java应用最广泛的框架(轻量级),它的成功来源于理念,而不是技术本身。
-
IOC:控制反转
-
AOP:面向切面编程
-
DI:依赖注入
非侵入式设计:无需继承框架提供的任何一个类,更换框架,代码基本上不需要大改。
DI:称作依赖注入,和控制反转一个概念,具体的讲,当一个角色需要另外一个角色协助的时候,在传统的程序设计中,通常有调用者来创建被调用者的实例。但是在spring中创建被调用者将不再有调用者完成,因此叫控制反转。创建被调用对象有Spring来完成,在容器实例化对象的时候主动的将被调用者(或者说它的依赖对象)注入给调用对象,因此又叫依赖注入。
AOP:Spring对面向切面编程提供了强有力的支持,通过它让我们将业务逻辑从应用服务(如事务管理)中分离出来,实现了高内聚开发(所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。),应用对象只关注业务逻辑,不再负责其它系统问题(如日志、事务等)。Spring支持用户自定义切面。
JavaBean
springbean是javabean的扩展,但是已经完全不是一回事儿了。
现在的JavaBean作为对象,要求每个属性提供setget方法,spring的bean只需要为接收设置的值注入提供set方法。
Spring优势
-
低侵入 / 低耦合
-
轻量级框架,可自由选择使用哪几个Spring模块
-
声明式事务(基于AOP)
-
方便继承其他框架
-
降低了Java的开发难度(扯)
-
提供了JavaWEB三层的每一层的解决方案
缺点:
1.jsp中要写很多代码、控制器过于灵活,缺少一个公用控制器
2.Spring不支持分布式,这也是EJB仍然在用的原因之一
3.大量的反射机制,相对来说比较占内存,而且效率不如直接调用高
4.程序,逻辑不太清晰,代码不直观,时不时去查看配置才能理解代码
5.启动Spring的IOC容器,需要依赖第三方的Web服务器,自身不能启动
6.调试阶段不直观,不容易定位到Bug的问题所在。