目录
Spring介绍
Spring框架是Java应用最广泛的框架(轻量级),它的成功来源于理念,而不是技术本身。
非侵入式设计:无需继承框架提供的任何一个类,更换框架,代码基本上不需要大改。
DI:称作依赖注入,和控制反转一个概念,具体的讲,当一个角色需要另外一个角色协助的时候,在传统的程序设计中,通常有调用者来创建被调用者的实例。但是在spring中创建被调用者将不再有调用者完成,因此叫控制反转。创建被调用对象有Spring来完成,在容器实例化对象的时候主动的将被调用者(或者说它的依赖对象)注入给调用对象,因此又叫依赖注入。
AOP:Spring对面向切面编程提供了强有力的支持,通过它让我们将业务逻辑从应用服务(如事务管理)中分离出来,实现了高内聚开发(所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。),应用对象只关注业务逻辑,不再负责其它系统问题(如日志、事务等)。Spring支持用户自定义切面。
Spring的bean的生命周期
- 构造器
- 属性注入
- 初始化方法
- 目标方法
- 销毁
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的问题所在。
总结
Spring是一个全新的框架,需要导入许多资源包,看起来繁琐,实际上有迹可循,Springle现在市面上应用广泛,学会了今后将有广大的前景