什么是Spring?它有哪些好处?

Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架,

主要是为了解决企业应用开发的复杂性而诞生的:

目的:解决企业级应用开发的复杂性。


功能:使用基本的JavaBean代替EJB。


范围:任何Java应用。



Spring的存在是因为它自身的得天独厚的优势:


它定位的领域是许多其他流行的framework没有的。


Spring是全面的和模块化的。


它的设计从底部帮助你编写易于测试的代码。


Spring是潜在一站式解决方案。



Spring天生就存在如下的有点:


低侵入式设计,代码污染极低。


Write Once,Run Anywhere


DI有效的降低了耦合度。


AOP提供了通用的任务的集中管理。


ORM和DAO简化了对数据库的访问。


高度开放性,并不强制(贯穿于变现层,业务层,持久层)



Spring的优点给开发带来的好处:


可以有效组织中间层对象。


使用同一的配置文件。


促进良好的编程习惯,减少编程代价。


易于单元测试。(一Spring基本组就是JavaBean,二提供了对Juit的支持)


使EJB成为一种备选。


为数据存取提供了一致性的框架。

什么是Spring?它有哪些好处?_单元测试



Spring特点:


方便解耦,简化开发。


AOP(面向切面编程)的支持。


声明式事物的支持


方便程序的测试


方便集成各种优秀框架。


降低JavaEE API使用难度。


Spring的源码是经典学习范例。



附AOP通俗的理解


       一个组件A,不关心其他常用的服务组件B,但是这个组件A使用B的时候,不是组件A自身去调用,

而是通过配置等其他方式,列如Spring中可以通过XML配置文件。这样就使得A压根就不需要


知道服务组件B是怎么样的,爱存在不存在,爱怎么样存在都与A无关。A只需要关心自己的业

务逻辑,具体A使用B的时候,配置文件去做,与具体的A组件无关。


附IOC通俗的理解如下


IOC控制反转:说的是创建对象实例的控制权从代码控制剥离到IOC容器控制,实际就是你在xml文件控制,

侧重于原理。


 DI依赖注入:说的是创建对象实例时,为这个对象注入属性值或其他对象实例后,侧重于实现。


     总结:


Spring带来了复杂dJ2EE开发的春天。
它的核心是轻量级的IOC容器,它的目标是为J2EE应用提供了全方位的整合框架,在Spring框架
下实现多个子框架的组合,这些子框架之间可以彼此独立,也可以使用其他的框架方案加以代替。

Spring希望为企业应用提供一站式的解决方案(建议:如果是高并发大型项目,慎重使用,

因为项目大量使用反射机制,必定会影响性能。)