知识大全 Spring框架概述
Posted 框架
篇首语:不塞不流,不止不行。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring框架概述相关的知识,希望对你有一定的参考价值。
Spring框架概述 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
SPRING框架——由来和发展 Spring是java平台上的一个开源应用框架 它的第一个版本是由Rod Johnson写出来的 Rod在他的Expert One On One Java EE Design and Development(Java企业应用设计与开发的专家一对一)一书中首次发布了这个框架 该框架也可以移植到 NET的环境下 Spring的框架首次在 年 月的Apache 的使用许可中发布 第一个具有里程碑意义的版本是 年 月发布的 年 月和 年 月先后又有重要的版本面世 Spring框架本身并没有强制实行任何特别的编程模式 在Java社区里 Spring作为EJB模型之外的另外一个选择甚至是替代品而广为流行 从设计上看 Spring给予了Java程序员许多的自由度 但同时对业界常见的问题也提供了良好的文档和易于使用的方法 Spring框架的核心功能在任何Java应用中都是适用的 在基于Java企业平台上的web应用中 大量的拓展和改进得以形成 为此 Spring获得了广泛的欢迎 并被许多公司认可为具有战略意义的重要框架 Spring框架的历史 Spring框架最开始的部分是由Rod Johnson于 年为伦敦的金融界提供独立咨询业务时写出来的 在《Java企业应用设计与开发的专家一对一》一书中 Rod进一步拓展了他的代码 以阐述 如何让应用程序能以超出当时大众所惯于接受的易用性和稳定性与J EE平台上的不同组件合作 的观点 在 年 web应用的主流编程模式为Java Servlet API和EJB 两者都是由太阳微系统公司与其他一些开发商和利益团体提出的 并在Java业界里获得了广泛的共识 那些非Web的应用 比如用户端的或批处理的应用 也可以基于能够提供所需功能的开源或商用工具和项目 基于最优方法并适用于各种应用类型的Spring框架的建立要归功于Rod Johnson 这些想法也在他的书中得以阐述 书发表后 基于读者的要求 源代码在开源使用协议下得以提供 一批自愿拓展Spring框架的程序开发员组成了团队 年 月在Sourcefe上构建了一个项目 在Spring框架上工作了一年之后 这个团队在 年 月发布了第一个版本( ) 这个版本之后 Spring框架在Java社区里变得异常流行 部分的要归结于它好于一般水准的文档功能和参考文献 特别是对于一个开源项目而言尤其如此 但是 Spring框架在 年也备受批评 有时它也成为热烈争论的主题 Spring的第一个版本发布时 许多程序员和领先的设计人员把它看作是远离传统编程模式的一步;特别是对于EJB而言尤其如此 Spring框架的一个重要设计目标就是更容易地与已有的J EE标准和商用工具整合 在很大程度上 这个目标使得通过受争议的官方委员会控制的规范文档来定义功能变得可有可无 Spring框架使之前并不受欢迎的技术在短时间内迅速走红 最有名的例子就是反向控制(IOC) 年 Spring框架的采用率非常之高;通过推出自身的AOP(面向方向的编程) Spring使AOP整体而言在Java社区里广受欢迎 年 Spring因具有里程碑意义的新的版本的推出 更多功能的添加 从而得到了比 年更高的采用率 年底创建的Spring论坛也对框架的推广而推波助澜 论坛对广大用户而言已经成为最重要的信息和帮助的源泉 年 Spring框架的开发人员成立了自己的公司 来提供对Spring的商业支持 其中最显著的就是与BEA的合作 年 月 第一个Spring会议在迈阿密举行 天的课程吸引了 名开发人员 年 月在安特卫普召开的会议有 多名开发人员 Spring框架的主要功能 &# ; 基于Java Beans的配置管理 采用IOC的原理 特别是对依赖注射技术的使用 这些都用来减少各组件间对实施细则的相互依赖性 &# ; 一个核心的 全局适用的bean工厂 &# ; 一个一般抽象化的层面来管理数据库间的数据处理 &# ; 建立在框架内的 对Java数据处理API和单独的JDBC数据源的一般性策略 因此 在数据处理支持上对Java企业版本环境的依赖性得以消除 &# ; 和一些可持续性的框架 如Hibernate JDO iBATIS和db o 的整合 &# ; web应用中的MVC框架 基于核心的Spring功能 支持多种产生视图的技术 包括JSP FreeMarker Velocity Tiles iText 和POI &# ; 大量的AOP框架以提供诸如数据处理管理的服务 同IOC的功能一样 目的是提高系统的模块化程度Spring 框架的七个模块 Spring 框架是一个分层架构 由 个定义良好的模块组成 Spring 模块构建在核心容器之上 核心容器定义了创建 配置和管理 bean 的方式 如图 所示
``````````````````````组成 Spring 框架的每个模块(或组件)都可以单独存在 或者与其他一个或多个模块联合实现 每个模块的功能如下 核心容器 核心容器提供 Spring 框架的基本功能 核心容器的主要组件是 BeanFactory 它是工厂模式的实现 BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开 Spring 上下文 Spring 上下文是一个配置文件 向 Spring 框架提供上下文信息 Spring 上下文包括企业服务 例如 JNDI EJB 电子邮件 国际化 校验和调度功能 Spring AOP 通过配置管理特性 Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中 所以 可以很容易地使 Spring 框架管理的任何对象支持 AOP Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务 通过使用 Spring AOP 不用依赖 EJB 组件 就可以将声明性事务管理集成到应用程序中 Spring DAO JDBC DAO 抽象层提供了有意义的异常层次结构 可用该结构来管理异常处理和不同数据库供应商抛出的错误消息 异常层次结构简化了错误处理 并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接) Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构 Spring ORM Spring 框架插入了若干个 ORM 框架 从而提供了 ORM 的对象关系工具 其中包括 JDO Hibernate 和 iBatis SQL Map 所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构 Spring Web 模块 Web 上下文模块建立在应用程序上下文模块之上 为基于 Web 的应用程序提供了上下文 所以 Spring 框架支持与 Jakarta Struts 的集成 Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作 Spring MVC 框架 MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现 通过策略接口 MVC 框架变成为高度可配置的 MVC 容纳了大量视图技术 其中包括 JSP Velocity Tiles iText 和 POI Spring 框架的功能可以用在任何 J EE 服务器中 大多数功能也适用于不受管理的环境 Spring 的核心要点是 支持不绑定到特定 J EE 服务的可重用业务和数据访问对象 毫无疑问 这样的对象可以在不同 J EE 环境 (Web 或 EJB) 独立应用程序 测试环境之间重用 Spring框架的主要功能[NextPage] 组成 Spring 框架的每个模块(或组件)都可以单独存在 或者与其他一个或多个模块联合实现 每个模块的功能如下 核心容器 核心容器提供 Spring 框架的基本功能 核心容器的主要组件是 BeanFactory 它是工厂模式的实现 BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开 Spring 上下文 Spring 上下文是一个配置文件 向 Spring 框架提供上下文信息 Spring 上下文包括企业服务 例如 JNDI EJB 电子邮件 国际化 校验和调度功能 Spring AOP 通过配置管理特性 Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中 所以 可以很容易地使 Spring 框架管理的任何对象支持 AOP Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务 通过使用 Spring AOP 不用依赖 EJB 组件 就可以将声明性事务管理集成到应用程序中 Spring DAO JDBC DAO 抽象层提供了有意义的异常层次结构 可用该结构来管理异常处理和不同数据库供应商抛出的错误消息 异常层次结构简化了错误处理 并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接) Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构 Spring ORM Spring 框架插入了若干个 ORM 框架 从而提供了 ORM 的对象关系工具 其中包括 JDO Hibernate 和 iBatis SQL Map 所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构 Spring Web 模块 Web 上下文模块建立在应用程序上下文模块之上 为基于 Web 的应用程序提供了上下文 所以 Spring 框架支持与 Jakarta Struts 的集成 Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作 Spring MVC 框架 MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现 通过策略接口 MVC 框架变成为高度可配置的 MVC 容纳了大量视图技术 其中包括 JSP Velocity Tiles iText 和 POI Spring 框架的功能可以用在任何 J EE 服务器中 大多数功能也适用于不受管理的环境 Spring 的核心要点是 支持不绑定到特定 J EE 服务的可重用业务和数据访问对象 毫无疑问 这样的对象可以在不同 J EE 环境 (Web 或 EJB) 独立应用程序 测试环境之间重用 Spring事务管理 在学习spring事务管理时 我忍不住要问 spring为什么进行事务管理 spring怎么进行的事务管理? 首先 为什么要进行事务 接下来说说spring是怎样进行事务管理的 ① Spring事务策略 Spring事务策略 也就是spring事务管理的实现方式 它有一个统一的抽象是由实现下面这个接口完成的 springframework transaction PlatformTransactionManager 此接口的内容如下: Public interfacePlatformTransactionManager() TransactionStatue getTransaction(TransactionDefinition definition) throws TransactionException; Void mit(TransactionStatus status) throws TransactionException; Void rollback(TransactionStatus status) throws TransactionException; 不管是声明式的还是编程式的事务管理都需要此抽象来完成 解释一下这个接口 这样可以更好的理解spring的事务控制的原理 getTransaction()根据类型为TransactionDefinition的参数返回一个TransactionStatus对象 返回的TransactionStatus对象可能代表一个新的或已经存在的事务(如果在当前调用堆栈有一个符合条件的事务) 如同J EE事务上下文 一个TransactionStatus也是和执行的线程关联的 同时 在框架中还存在TransactionDefinition接口 即上边的参数类型 此接口指定了事务隔离程度 事务传播 事务超时 只读状态 另外 还有TransactionStatus接口 这个接口为处理事务提供简单的控制事务执行和查询事务状态的方法 ② 两种事务管理方式 编程式 声明式 Spring提供两种方式的编程式事务管理 分别是 使用TransactionTemplate和直接使用PlatformTransactionManager ⅰ TransactionTempale采用和其他Spring模板 如JdbcTempalte和HibernateTemplate一样的方法 它使用回调方法 把应用程序从处理取得和释放资源中解脱出来 如同其他模板 TransactionTemplate是线程安全的 代码片段 Object result =tt execute(newTransactionCallback() publicObject doTransaction(TransactionStatus status) updateOperation(); returnresultOfUpdateOperation(); ); 使用TransactionCallback()可以返回一个值 如果使用TransactionCallbackWithoutResult则没有返回值 ⅱ 也可以使用PlatformTransactionManager直接管理事务 简单地通过一个bean引用给你的bean传递一个你使用的PlatformTransaction对象 然后 使用TransactionDefinition和TransactionStatus对象就可以发起 回滚 提交事务 [NextPage] 如下片段 DefaultTransactionDefinition def=newDefaultTransactionDefinition(); //new 一个事务 def setPropagationBehavior(TransactionDefinition PROPAGATION_REQUIRED); //初始化事务 参数定义事务的传播类型; TransactionStatus status =transactionManager getTransaction(def); //获得事务状态 try
相关参考
Spring框架人气暴涨简洁高效是关键 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 月日消息据
定义一些抽象的方法 [java] packagehuxinspringinjectdao; publicinterfacePerson publicvoidsave(); publicv
知识大全 spring struts2 ibatis框架整合开发
这里主要介绍一下spring+struts+ibatis所需要的jar包文件spring所需包 以上包为spring配置基本包ibatis所需包 有解决方法的朋友们希望能回复 与struts整合
基于Spring框架的WebSphere应用开发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Spring事务处理及其AOP框架的内幕 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ***注
Spring安全认证框架2.0.0发布! 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
SpringMVC框架方法入参的介绍 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Spring
Spring框架的设计理念与设计模式分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Spri
Spring框架下实现基于组的用户权限管理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在几乎所有
SpringMVC框架的高级配置(下) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 上文介绍S