Spring程序员的春天

Spring的由来

Spring由来:当J2EE应用程序广泛使用的时候,出现了事务管理之类的核心中间层概念的标准化,但是在众多的时间活动中,都没有很好的办法解决。

由于用EJB开发J2EE应用的人,都知道EJB要严格地继承各种不同类型的接口,类似的或者重复的大量的代码存在。配置也相对很单调和复杂,同样适用JNDI进行对象查询的代码也是单调而枯燥。虽然xdoclet的出现,而有所缓解,但是学习EJB的高昂代价和极低的开发效率,极高的资源消耗,都造成了EJB的适用困难。而Spring的横空出世,就是为了解决这些问题。使用Spring的一个最大的目的就是使J2EE开发更加容易,致力于一个以统一的高效的方式构造整个应用,并将单层框架(Struts、Hibernate)以最佳的组合糅合在一起建立一个连贯的体系。

Spring初衷

1.J2EE开始应该更加简单

2.使用接口而不是使用类,是更好的编程习惯。Spring将使用接口的复杂度几乎降低到了零。

3.为JavaBean提供了一个更好的应用配置框架

4.更多的强调面向对象设计,而不是现行的技术

5.尽量减少不必要的异常捕捉

6.使用应程序更加容易测试

Spring的目标

1.可以令人方便愉快的使用Spring

2.应用程序代码并不依赖于Spring APIs

3.Spring不和现有解决方案竞争,而是致力于将他们融合在一起。

Spring的组成

1.最完善的轻量级核心框架

2.通用的事务管理抽象层

3.JDBC抽象层

4.集成了Toplink,Hibernate,JDOand iBATIS SQL Maps

5.AOP功能

6.灵活的MVC Web应用框架

Spring七模块

Spring程序员的春天_第1张图片

1.Spring Core:核心容器,BeanFactory(控制反转)提供了组件声明周期管理,组件的穿件,封装,销毁等功能。

2.SpringContext:ApplicationContext,扩展核心容器,提供事件处理,国际化等功能。它提供了一些企业级服务的功能,提供了JNDI,EJB,RMI的支持。

3.Spring AOP:提供切面支持

4.SpringDAO:提供事务支持,JDBC,DAO支持

5.Spring ORM:对流行的O/RMapping封装或支持

6.Spring Web:提供Web应用上下文,对Web开发提供上的支持,如请求,表单,异常等

7.Spring Web MVC:全功能MVC框架,作用等同于Struts

Spring优点

1. Spring能够有效地组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了Struts或其他为J2EEAPI特制的frameworkspring致力于解决剩下的问题。

2. Spring能够消除在工程中常见的对Singleton的过多使用。

3. 通过把对接口编程而不是对垒编程的代价几乎减少到没有,Spring能够促进编程习惯的养成。

4. Spring能使EJB的使用成为一个实现选择,而不是必然选择。你能够选择用POJOsIocal EJBs来实现业务接口,而不影响调用代码。

5. Spring帮助你解决了许多问题而不需要EJBSpring能提供一种EJB的代替物,它们适用于许多web应用。例如:Spring能够使用AOP提供声明式事务管理而不通过EJB容器,如果你仅仅需要与单个数据库打交道,甚至不需要一个JTA实现。

6. Spring为数据存取提供了一个一致的框架,无论是使用JDBC还是O/R mapping产品(如Hibernate)。

7. 易于建立测试单元

Spring缺点

1. 降低了可测试性和面向对象程度

2. 中断了应用程序的逻辑,是代码变得不完整,不直观

3. 后期维护比较困难

知识共鸣

Spring的七个模块我们以前都涉及过,我们可以和以前拥有的知识产生联系。

Spring是一个轻量级的控制反转(IoP)面向切面(AOP)的容器框架(是Spring的重头戏,详细介绍),Spring MVC(稍后详细介绍)

知识共鸣点:

SpringDAO:Spring+struts1+hibernate集成项目中,异常层次结构简化错误处理,这样异常,由Spring本身处理。

Spring ORM:Hibernate的应用

Spring Web模块:Spring+struts1集成的项目中

Spring Context:包括企业服务,国际化,电子邮件,校验,调度功能,EJB和JNDI。


总结

上述优点与缺点都是结合自己的经验而写出来的,是自己在学习中一小点点时间,有什么不对之处,亲!请多多指点!

你可能感兴趣的:(spring)