什么是Spring?Spring是什么?
Spring概述:
Spring是一个开源框架,是为了解决企业应用程序开发复杂性而开发的。
从简单性、可測试性和松耦合的角度而言,不论什么java应用都能够从Spring中受益。
简而言之,Spring就是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。
Spring主要特征:
轻量:
从大小和开销双方面而言Spring都是轻量的。此外,Spring是非侵入式的,使用Spring,我们的类还是pojo类,
全然不用继承和实现Spring的类和接口等。也就是说, Spring的应用中不依赖于实现Spirng的特定类。
IOC:
Spring之中最重要的概念之中的一个。Spring通过控制反转技术促进了松耦合。当应用了IOC,
一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找对象。能够觉得IOC与JNDI相反,
不是我们自己控制对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它,这就是注入依赖,也是控制反转。
基本上就是对象不用自己手动管理和创建,全然由容器管理,我们仅仅管用就OK了。
AOP:
Spring提供了面向切面的编程支持,AOP将与程序业务无关的内容分离提取出来,而应用对象仅仅实现他们应该做的-即完毕业务逻辑-仅此而已。
应用对象并不负责其它的系统级关注点,比如日志或者事务支持。AOP将与业务无关的逻辑横切入真正的逻辑中。
容器:
Spring包括并管理应用对象的配置和生命周期,在这个意义上它是一个容器,你能够单独配置你的每一个bean怎样被创建,可能基于一个可配置原型(prototype),你的bean能够创建一个单独的实例或者每次须要时都生成一个新的实例,以及它们是怎样关联的,同一时候Spring的容器也是轻量级的。
框架:
Spring能够将简单的组件配置,组合成复杂的应用。在Spring中,应用对象被声明式的组合。Spring也提供了非常多基础功能(事务管理、持久化框架集成等等),而用户就有很多其它的时间和精力去开发应用逻辑。
Sring的这些特征,都可以帮助我们编写更干净、更可管理、更easy測试的代码。接下来看看Spring有什么基本的长处:
借助Spring,通过依赖注入、AOP,来减少业务逻辑之间的耦合,增强系统的可扩展性。
整合其它框架,让已有的技术和框架更加easy使用。比如,利用其对hibernate、SessionFactory、事务管理的封装,更简洁的应用框架Hibernate。
使用Spring而并不全然依赖Spring,开发人员能够自由选用Spring框架的部分或者所有。
利用AOP思想,集中处理业务逻辑,降低反复代码,构建优雅的解决方式。
低侵入式设计,代码污染极低。
总结:
Spring致力于J2EE应用的各层的解决方式,而不只专注于某一层的方案。能够说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层、持久层。
尽管Spring能够一站式的解决整个项目问题,可是Spring并不想代替那些已有的框架,而是与他们无缝的整合。Spring能够减少各种框架的使用难度,它提供了对各种优秀框架-Struts2、HiernateQuartz等,的直接支持。
使用Spring的主要目的是使J2EE易用和促进好的编程习惯,Spring的目标就是让已有的技术更加易用。
所以,Spring的重要思想就是整合和兼容。