没有合适的资源?快使用搜索试试~ 我知道了~
Spring框架中文文档(5.1.3.RELEASE)1
需积分: 0 0 下载量 5 浏览量
2022-08-04
00:23:49
上传
评论
收藏 6.72MB PDF 举报
温馨提示
试读
829页
1.“春天”是什么意思 2. Spring的历史和Spring框架 3.设计理念 4.反馈和贡献 5.入门
资源详情
资源评论
资源推荐
概观 历史,设计理念,反馈,入门。
核心 IoC容器,事件,资源,i18n,验证,数据绑定,类型转换,SpEL,AOP。
测试 模拟对象,TestContext框架,Spring MVC测试,WebTestClient。
数据访问 事务,DAO支持,JDBC,ORM,编组XML。
Web Servlet Spring MVC,WebSocket,SockJS,STOMP消息传递。
网络反应 Spring WebFlux,WebClient,WebSocket。
积分 远程处理,JMS,JCA,JMX,电子邮件,任务,调度,缓存。
语言 Kotlin,Groovy,动态语言。
Spring框架文档 5.1.3.RELEASE
版本5.1.3.RELEASE
什么
是新
的
,
升
级笔
记
,
支持
的
版
本
和其他主题,独立于发布节奏,在项目的Github Wiki上外部维护 。
版本5.1.3.RELEASE 上次更新时间2018-11-27 09:09:33 UTC
Spring框架概述
版本5.1.3.RELEASE
Spring可以轻松创建Java企业应用程序。它提供了在企业环境中使用Java语言所需的一切,支持Groovy和Kotlin作
为JVM上的替代语言,并可根据应用程序的需要灵活地创建多种体系结构。从Spring Framework 5.0开始,Spring
需要JDK 8+(Java SE 8+),并且已经为JDK 9提供了开箱即用的支持。
Spring支持广泛的应用场景。在大型企业中,应用程序通常存在很长时间,并且必须在升级周期超出开发人员控制
范围的JDK和应用程序服务器上运行。其他可以作为单个jar运行,其中嵌入了服务器,可能在云环境中。还有一些
可能是不需要服务器的独立应用程序(例如批处理或集成工作负载)。
Spring是开源的。它拥有一个庞大而活跃的社区,可根据各种各样的实际用例提供持续的反馈。这有助于Spring在
很长一段时间内成功发展。
1.“春天”是什么意思
术语“春天”在不同的背景下意味着不同的东西。它可以用来引用Spring Framework项目本身,它就是一切开始的地
方。随着时间的推移,其他Spring项目已经构建在Spring Framework之上。大多数情况下,当人们说“春天”时,他
们指的是整个项目系列。本参考文档侧重于基础:Spring Framework本身。
Spring框架分为几个模块。应用程序可以选择所需的模块。核心是核心容器的模块,包括配置模型和依赖注入机
制。除此之外,Spring Framework还为不同的应用程序体系结构提供了基础支持,包括消息传递,事务数据和持
久性以及Web。它还包括基于Servlet的Spring MVC Web框架,以及Spring WebFlux响应式Web框架。
关于模块的说明:Spring的框架jar允许部署到JDK 9的模块路径(“Jigsaw”)。为了在支持Jigsaw的应用程序中使
用,Spring Framework 5 jar带有“Automatic-Module-Name”清单条目,它定义了独立于jar工件的稳定语言级模
块名称(“spring.core”,“spring.context”等)名称(罐子使用相同的命名模式,而不是“。”,例如“spring-
core”和“spring-context”)。当然,Spring的框架jar在JDK 8和9上的类路径上都能正常工作。
2. Spring的历史和Spring框架
Spring于2003年成立,是对早期J2EE规范复杂性的回应 。虽然有些人认为Java EE和Spring处于竞争中,但Spring
实际上是对Java EE的补充。Spring编程模型不包含Java EE平台规范; 相反,它集成了EE保护伞中精心挑选的个别规
格:
Servlet API(JSR 340)
WebSocket API(JSR 356)
并发实用程序(JSR 236)
JSON绑定API(JSR 367)
Bean验证(JSR 303)
JPA(JSR 338)
JMS(JSR 914)
以及必要时用于事务协调的JTA / JCA设置。
Spring Framework还支持依赖注入(JSR 330)和Common Annotations(JSR 250)规范,应用程序开发人员可
以选择使用这些规范,而不是Spring Framework提供的Spring特定机制。
从Spring Framework 5.0开始,Spring至少需要Java EE 7级别(例如Servlet 3.1 +,JPA 2.1+) - 同时在Java EE 8
级别提供与新API的开箱即用集成(例如,Servlet 4.0,JSON绑定API)在运行时遇到。这使Spring与Tomcat 8和
9,WebSphere 9和JBoss EAP 7完全兼容。
随着时间的推移,Java EE在应用程序开发中的作用也在不断发展。在Java EE和Spring的早期,创建了应用程序以
部署到应用程序服务器。今天,在Spring Boot的帮助下,应用程序以devops和云友好的方式创建,Servlet容器嵌
入并且变得微不足道。从Spring Framework 5开始,WebFlux应用程序甚至不直接使用Servlet API,并且可以在
不是Servlet容器的服务器(例如Netty)上运行。
Spring继续创新并不断发展。除了Spring Framework之外,还有其他项目,例如Spring Boot,Spring Security,
Spring Data,Spring Cloud,Spring Batch等。重要的是要记住每个项目都有自己的源代码存储库,问题跟踪器
和发布节奏。有关Spring项目的完整列表,请参见spring.io/projects。
3.设计理念
当您了解框架时,重要的是不仅要知道它的作用,还要了解它遵循的原则。以下是Spring Framework的指导原
则:
提供各个层面的选择。Spring允许您尽可能晚地推迟设计决策。例如,您可以通过配置切换持久性提供程
序,而无需更改代码。许多其他基础架构问题以及与第三方API的集成也是如此。
适应不同的观点。Spring拥抱灵活性,并不认为应该如何做。它以不同的视角支持广泛的应用需求。
保持强大的向后兼容性。Spring的演变经过精心设计,可以在版本之间进行一些重大改变。Spring支持精心
挑选的JDK版本和第三方库,以便于维护依赖于Spring的应用程序和库。
关心API设计。Spring团队投入了大量的思考和时间来制作直观的API,并且可以支持多个版本和多年。
为代码质量设定高标准。Spring框架强调有意义的,当前的和准确的javadoc。它是极少数项目之一,可以声
称干净的代码结构,包之间没有循环依赖。
4.反馈和贡献
对于操作方法问题或诊断或调试问题,我们建议使用StackOverflow,我们有一个问题页面列出了要使用的建议标
签。如果您非常确定Spring Framework中存在问题或想要建议功能,请使用JIRA问题跟踪器。
如果您有解决方案或建议的修复,您可以在Github上提交拉取请求 。但是,请记住,除了最微不足道的问题之
外,我们希望在问题跟踪器中提交一张票据,进行讨论并留下记录以供将来参考。
有关更多详细信息,请参阅“ 贡献 ”顶级项目页面上的指南。
5.入门
如果您刚刚开始使用Spring,您可能希望通过创建基于Spring Boot的应用程序来开始使用Spring Framework 。
Spring Boot提供了一种快速(和固执己见)的方式来创建一个生产就绪的基于Spring的应用程序。它基于Spring
Framework,支持约定优于配置,旨在帮助您尽快启动和运行。
您可以使用start.spring.io生成基本项目,也可以按照“入门”指南之一进行操作,例如“ 入门构建RESTful Web服
务”。除了更容易理解之外,这些指南非常注重任务,而且大多数都基于Spring Boot。它们还涵盖了Spring组合中
您在解决特定问题时可能需要考虑的其他项目。
版本5.1.3.RELEASE 上次更新时间2018-11-27 09:09:33 UTC
核心技术
版本5.1.3.RELEASE
这部分参考文档涵盖了Spring Framework绝对不可或缺的所有技术。
其中最重要的是Spring Framework的控制反转(IoC)容器。对Spring框架的IoC容器进行彻底的处理后,我们将
全面介绍Spring的面向方面编程(AOP)技术。Spring Framework有自己的AOP框架,它在概念上易于理解,并
且成功地解决了Java企业编程中AOP要求的80%最佳点。
还提供了Spring与AspectJ集成的覆盖范围(目前最丰富的 - 在功能方面 - 当然也是Java企业领域中最成熟的AOP实
现)。
1. IoC容器
本章介绍Spring的控制反转(IoC)容器。
1.1。Spring IoC容器和Bean简介
本章介绍了控制反转(IoC)原理的Spring Framework实现。(参见控制反转。)IoC也称为依赖注入(DI)。这
是一个过程,通过这个过程,对象只能通过构造函数参数,工厂方法的参数或在从工厂方法构造或返回的对象实例
上设置的属性来定义它们的依赖关系(即,它们使用的其他对象)。 。然后容器在创建bean时注入这些依赖项。
这个过程基本上是bean本身通过使用类的直接构造或诸如服务定位器模式之类的机制来控制其依赖关系的实例化
或位置的逆(因此名称,控制反转)。
在 org.springframework.beans 和 org.springframework.context 包是Spring框架的IoC容器的基础。该
BeanFactory 接口提供了一种能够管理任何类型对象的高级配置机制。 ApplicationContext 是一个子界面
BeanFactory 。它补充说:
更容易与Spring的AOP功能集成
消息资源处理(用于国际化)
活动出版
特定 WebApplicationContext 于应用程序层的上下文,例如在Web应用程序中使用的上下文。
简而言之,它 BeanFactory 提供了配置框架和基本功能,并 ApplicationContext 添加了更多企业特定的功能。
它 ApplicationContext 是完整的超集, BeanFactory 在本章中专门用于Spring的IoC容器的描述。有关使用
BeanFactory 而不是 ApplicationContext, 看到 的 BeanFactory 更多信息。
在Spring中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。bean是一个由Spring IoC容器实例化,
组装和管理的对象。否则,bean只是应用程序中众多对象之一。Bean及其之间的依赖关系反映在容器使用的配置
元数据中。
1.2。集装箱概览
该 org.springframework.context.ApplicationContext 接口表示Spring IoC容器,负责实例化,配置和组装
bean。容器通过读取配置元数据获取有关要实例化,配置和组装的对象的指令。配置元数据以XML,Java注释或
Java代码表示。它允许您表达组成应用程序的对象以及这些对象之间丰富的相互依赖性。
ApplicationContext Spring提供了几种接口实现。在独立应用程序中,通常会创建一个
ClassPathXmlApplicationContext 或的实例 FileSystemXmlApplicationContext 。虽然XML是定义配置元数据的
传统格式,但您可以通过提供少量XML配置来声明容器使用Java注释或代码作为元数据格式,以声明方式启用对这
些其他元数据格式的支持。
在大多数应用程序方案中,不需要显式用户代码来实例化Spring IoC容器的一个或多个实例。例如,在Web应用程
序场景中,应用程序文件中的简单八行(左右)样板Web描述符XML web.xml 通常就足够了(请参阅Web应用程
序的便捷ApplicationContext实例)。如果您使用 Spring Tool Suite(基于Eclipse的开发环境),只需点击几下鼠
标或按键即可轻松创建此样板配置。
下图显示了Spring如何工作的高级视图。您的应用程序类与配置元数据相结合,以便在 ApplicationContext 创建
和初始化之后,您拥有完全配置且可执行的系统或应用程序。
图1. Spring IoC容器
1.2.1。配置元数据
如上图所示,Spring IoC容器使用一种配置元数据。此配置元数据表示您作为应用程序开发人员如何告诉Spring容
器在应用程序中实例化,配置和组装对象。
**
基于XML的元数据不是唯一允许的配置元数据形式。Spring IoC容器本身完全与实际编写此配置元数
据的格式分离。目前,许多开发人员为其Spring应用程序选择 基于Java的配置。
** 该 id 属性是一个标识单个bean定义的字符串。
** 该 class 属性定义bean的类型并使用完全限定的类名。
传统上,配置元数据以简单直观的XML格式提供,本章大部分内容用于传达Spring IoC容器的关键概念和功能。
有关在Spring容器中使用其他形式的元数据的信息,请参阅:
基于注释的配置:Spring 2.5引入了对基于注释的配置元数据的支持。
基于Java的配置:从Spring 3.0开始,Spring JavaConfig项目提供的许多功能成为核心Spring Framework的
一部分。因此,您可以使用Java而不是XML文件在应用程序类外部定义bean。要使用这些新功能,请参阅
@Configuration , @Bean , @Import ,和 @DependsOn 注释。
Spring配置由容器必须管理的至少一个且通常不止一个bean定义组成。基于XML的配置元数据将这些bean配置为
<bean/> 顶级元素内的 <beans/> 元素。Java配置通常 @Bean 在 @Configuration 类中使用注释方法。
这些bean定义对应于构成应用程序的实际对象。通常,您定义服务层对象,数据访问对象(DAO),表示对象
(如Struts Action 实例),基础结构对象(如Hibernate SessionFactories ,JMS Queues 等)。通常,不会在
容器中配置细粒度域对象,因为创建和加载域对象通常由DAO和业务逻辑负责。但是,您可以使用Spring与
AspectJ的集成来配置在IoC容器控制之外创建的对象。请参阅使用AspectJ使用Spring依赖注入域对象。
以下示例显示了基于XML的配置元数据的基本结构:
id 属性的值指的是协作对象。在此示例中未显示用于引用协作对象的XML。有关更多信息,请参阅 依赖项。
1.2.2。实例化容器
<?xmlversion="1.0"encoding="UTF‐8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema‐instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring‐beans.xsd">
<beanid="..."class="...">
<!‐‐collaboratorsandconfigurationforthisbeangohere‐‐>
</bean>
<beanid="..."class="...">
<!‐‐collaboratorsandconfigurationforthisbeangohere‐‐>
</bean>
<!‐‐morebeandefinitionsgohere‐‐>
</beans>
剩余828页未读,继续阅读
东郊椰林放猪散仙
- 粉丝: 18
- 资源: 301
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0