Spring到底是什么?- -

来源:互联网 发布:淘宝手机店铺装修软件 编辑:程序博客网 时间:2024/05/03 02:03

应该说这是一个好问题,我找了一些资料,分享大家,尤其是正在试图了解spring的朋友

Spring简介:

简介:功能强大的基于javaBeans的配置管理,它使组织应用变得容易和迅速。你的代码中不再充斥着单例垃圾,也不再有麻烦的属性文件。取而代之的一致和幽雅的方法的应用。

JDBC抽象层,提供有确切含义的异常层次结构(不再从SQLException继承一堆代码),简化了出错处理,大幅度减少你需要编写的代码,实际上,你根本不必再编写模块来调用 JDBC。

类似的事务管理抽象层,使你能够轻松定义事务而不再处理底层的JTA问题。
建立在核心Spring功能上的灵活的MVC web应用框架, 这个框架高度可配置,能够适应多种多视技术。

在Spring配置管理中 集成了所有AOP 功能。你可以通过事务管理声明让Spring管理的任意对象AOP 化。使用Spring, 你不通过EJB,在Tomcat 或其他不支持JTA的容器使用单个数据库时甚至不需要JTA,也能应用可声明事务管理。

集成了Hibernate, JDO 和其它重要的 APIs.
你可在任何J2EE server内或外面使用所有Spring功能。
Spring本身也是层式框架。它的所有功能建立在低层上。因此你可以只使用JavaBeans配置管理,而不使用MVC 框架或 AOP 支持,不过如果你应用MVC 框架或 AOP支持,你会发现它们建立在配置框架上,并且你可立即应用你相关的知识。

他的作者说的:
Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。
Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的 Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。

Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。

Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC纸上提供一个一致的编程模型。

Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。

Spring还提供了可以和总体的IoC容器集成的强大而灵活的MVC web框架。

Spring组成

Spring Core (spring核心)即IOC或DI 注IOC是Inversion of control (控制反转),DI dependency injection(依赖注入)

AOP aspect orentied programming (面向方面编程或面向切面编程)

Web Mvc 不用多说了

ORM ORM,即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射

DAO data access object数据访问对象(不知这里是不是这个意思)
Web

Context 上下文


各组成与简介的关系

SpringCore(IOC) Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。
功能强大的基于javaBeans的配置管理,它使组织应用变得容易和迅速。你的代码中不再充斥着单例垃圾,也不再有麻烦的属性文件。取而代之的一致和幽雅的方法的应用。

AOP 在Spring配置管理中 集成了所有AOP 功能。你可以通过事务管理声明让Spring管理的任意对象AOP 化。使用Spring, 你不通过EJB,在Tomcat 或其他不支持JTA的容器使用单个数据库时甚至不需要JTA,也能应用可声明事务管理。
Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。

Web MVC建立在核心Spring功能上的灵活的MVC web应用框架, 这个框架高度可配置,能够适应多种多视技术。

ORM Spring的数据访问架构还集成了Hibernate和JDO 和其它重要的 APIs.其他O/R mapping解决方案。

DAO JDBC抽象层,提供有确切含义的异常层次结构(不再从SQLException继承一堆代码),简化了出错处理,大幅度减少你需要编写的代码,实际上,你根本不必再编写模块来调用 JDBC。
类似的事务管理抽象层,使你能够轻松定义事务而不再处理底层的JTA问题。

Context配置上下文,JNDI,以及数据校验信息等

Spring 关键在于每一个层面都可以单独使用,而无需向其他的framework一样,全有全无。另外,基于java语言的外部对象声明方式和AOP地结合让j2ee基础服务更简单的使用。现在什么都在讲重构拉,单元测试拉,spring给你最好的实践参考。

如果你开发过EJB,你对spring的体会就会比较深刻,因为作为一种轻量级容器的实现,spring避免了很多你以前头痛的问题。

当然,作为java的一员,spring 对你的学习曲线也会做很好的调整,在你学习spring的过程中,你将会得到OO更深的认识,面向接口的良好习惯,理解软件兼容性,用最少的代码解决同样的问题.....太多了。

看到有人问这个问题,我就在这里解释一下。本文在rongsantang的基础上修改,谢谢spring team的辛苦工作,reference已经到了public preview了。

原创粉丝点击