什么是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特点:
方便解耦,简化开发。
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希望为企业应用提供一站式的解决方案(建议:如果是高并发大型项目,慎重使用,
因为项目大量使用反射机制,必定会影响性能。)