`
923080512
  • 浏览: 187564 次
  • 性别: Icon_minigender_1
  • 来自: 商丘
社区版块
存档分类
最新评论

spring 简介

阅读更多

第 1 章 简介

1.1. 概览

Spring包含许多功能和特性,并被很好地组织在下图所示的七个模块中。本节将依次介绍每个模块.


Spring框架概览

Core包是框架的最基础部分, 并提供依赖注入(Dependency Injection)特性来使你可管理Bean容器功能。 这里的基础概念是BeanFactory,它提供Factory模式来消除对程序性单例的需要, 并允许你从程序逻辑中分离出依赖关系的配置和描述。

构建于Beans包上Context包,提供了一种框架式的Bean访问方式, 有些象JNDI注册。Context包的特性得自Beans包,并添加了文本消息的发送,通过比如资源串, 事件传播,资源装载的方式和Context的透明创建,如通过Servlet容器。

DAO包提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 该包也提供了一种方法实现编程性和声明性事务管理,不仅仅是针对实现特定接口的类, 而且对所有的POJO。

ORM包为流行的关系-对象映射APIs提供了集成层,包括JDO,Hibernate和iBatis。 通过ORM包,你可与所有Spring提供的其他特性相结合来使用这些对象/关系映射, 如前边提到的简单声明性事务管理。

Spring的AOP包提供与AOP联盟兼容的面向方面编程实现,允许你定义, 如方法拦截器和切点,来干净地给从逻辑上说应该被分离的功能实现代码解耦。 使用源码级的元数据功能,你可将各种行为信息合并到你的代码中,有点象.Net的attribute。

Spring的Web包提供了基本的面向Web的综合特性,如Multipart功能, 使用Servlet监听器的Context的初始化和面向Web的Applicatin Context。 当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。

Spring的Web MVC包提供了面向Web应用的Model-View-Controller实现。 Spring的MVC实现不仅仅是一种实现,它提供了一种domain model代码和web form的清晰分离, 这使你可使用Spring框架的所有其他特性,如校验.

1.2. 使用场景

利用积木方式来描述你在各种场合使用Spring的情况, 从Applet一直到完整的使用Spring的事务管理功能和Web框架的企业应用。


典型的完整Spring Web应用

一个典型的使用大部分Spring特性的Web应用。使用TransactionProxyFactoryBeans, Web应用是完全事务性的,就像使用EJB提供的那种容器管理的事务一样. 所有的你的自定义业务逻辑可以通过简单的POJO来实现,并通过Spring的Dependency Injection容器进行管理。其他的服务,如发送email和校验,独立于Web层, 使你能够决定在哪里执行校验规则。 Spring的ORM支持包含了Hibernate,JDO和iBatis。如使用HibernateDaoSupport, 你可复用已经存在的Hibernate映射。从Controller无缝整合web层和领域模型, 消除对ActionForms的需要和其他转换HTTP参数为领域模型的类。


使用了第三方框架的Spring中间层

有时,现有情况不允许你彻底地转换到一种不同的框架。Spring没有 强迫你使用它的全部,它不是一种全有全无 的解决方案。现有的使用WebWork,Struts,Tapestry或其他的UI框架的前端程序可极佳的 与基于Spring的中间层进行集成,使你可使用Spring提供的事务处理特性。 你唯一要做的事是使用ApplicationContext来挂接你的业务逻辑和 通过WebApplicationContext来集成你的Struts前端程序。


远程使用场景

当你需要通过WebService来访问你的现有代码时, 你可使用Spring的Hessian-,Burlap-, Rmi- 或者 JaxRpcProxyFactory类。 使得突然给现有应用增加远程访问时不再那么困难。


EJBs - 封装现有的POJO

Spring也为EJB提供了访问层和抽象层, 使你可复用已存在的POJO并将他们包装在Stateless SessionBean中, 以便在可能需要声明式安全(EJB中的安全管理,译者注)的可升级的可容错的Web应用中使用。

 

  • 大小: 18.9 KB
  • 大小: 19.4 KB
  • 大小: 14.2 KB
  • 大小: 11.9 KB
  • 大小: 12.4 KB
分享到:
评论

相关推荐

    五子棋wuziq.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    单片机C语言Proteus仿真实例占空比可调模拟仿真程序

    单片机C语言Proteus仿真实例占空比可调模拟仿真程序提取方式是百度网盘分享地址

    单片机C语言Proteus仿真实例用数码管设计的可调式电子钟

    单片机C语言Proteus仿真实例用数码管设计的可调式电子钟提取方式是百度网盘分享地址

    2023年第16届中国大学生计算机设计大赛附往届获奖作品合集资料

    2023年第16届中国大学生计算机设计大赛附往届获奖作品合集资料提取方式是百度网盘分享地址

    Linux下,C语言实现五子棋程序Linux-Wuziqi.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    需要系数法负荷计算软件.zip

    需要系数法负荷计算软件

    变压器差动计算软件.zip

    变压器差动计算软件

    单片机C语言Proteus仿真实例数码管动态显示

    单片机C语言Proteus仿真实例数码管动态显示提取方式是百度网盘分享地址

    Python源码-小海龟之螺旋曲线.py

    Python源码-小海龟之螺旋曲线

    Python源码-图形验证码考眼力游戏.py

    Python源码-图形验证码考眼力游戏

    飞机大战项目planegame.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    架空送电线路导地线弧垂计算小软件.zip

    架空送电线路导地线弧垂计算小软件

    W25Q512数据手册

    W25Q512数据手册。The W25Q512JV (512M-bit) Serial Flash memory provides a storage solution for systems with limited space, pins and power. The 25Q series offers flexibility and performance well beyond ordinary Serial Flash devices. They are ideal for code shadowing to RAM, executing code directly from Dual/Quad SPI (XIP) and storing voice, text and data. The device operates on a single 2.7V to 3.6V power supply with current consumption as low as 1µA for power-down. All devices are offered in space-

    three.js应用篇(五)模型内第一视角漫游

    完整示例代码

    setuptools-1.3.1.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    单片机C语言Proteus仿真实例数码管显示4×4键盘矩阵按键

    单片机C语言Proteus仿真实例数码管显示4×4键盘矩阵按键提取方式是百度网盘分享地址

    setuptools-46.3.0.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    bloom filter , 递归 , 回溯 , 五子棋 , 迷宫 , 扫雷 , 贪吃蛇 , 消字 , 各种数据结构算法.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    附件1:证券公司及基金管理公司子公司资产证券化业务管理规定(修订稿).pdf

    附件1:证券公司及基金管理公司子公司资产证券化业务管理规定(修订稿).pdf

    信息可视化类广东省大学生计算机设计大赛三等奖追溯党史数看百年历程视频

    信息可视化类广东省大学生计算机设计大赛三等奖追溯党史数看百年历程视频提取方式是百度网盘分享地址

Global site tag (gtag.js) - Google Analytics