Spring Framework 中文文档
版本
4.3.21.RELEASE
5.1.3.RELEASE
语言
English
中文
返回目录
I. Spring 框架概述
1. Spring 入门
2. Spring 框架简介
2.1. 依赖注入和控制反转
2.2. 框架模块
2.2.1. 核心容器
2.2.2. AOP 和检测
2.2.3. Messaging
2.2.4. 数据访问/集成
2.2.5. Web
2.2.6. Test
2.3. 使用场景
2.3.1. 依赖性 Management 和命名约定
Spring 依赖关系和 Spring 依赖
Maven 依赖 Management
Maven“物料 Lists”依赖性
Gradle 依赖 Management
Ivy 依赖 Management
分发 zipfile
2.3.2. Logging
使用 Log4j 1.2 或 2.x
避免公共记录
将 SLF4J 与 Log4j 或 Logback 一起使用
使用 JUL(java.util.logging)
在 WebSphere 上的 Commons Logging
II. Spring Framework 4.x 的新增功能
3. Spring Framework 4.0 中的新功能和增强功能
3.1. 改进的入门经验
3.2. 删除了不赞成使用的软件包和方法
3.3. Java 8(以及 6 和 7)
3.4. Java EE 6 和 7
3.5. Groovy Bean 定义 DSL
3.6. 核心容器的改进
3.7. 常规 Web 改进
3.8. WebSocket,SockJS 和 STOMP 消息传递
3.9. 测试改进
4. Spring Framework 4.1 中的新功能和增强功能
4.1. JMS 改进
4.2. 缓存改进
4.3. 网站改进
4.4. WebSocket 消息传递改进
4.5. 测试改进
5. Spring Framework 4.2 中的新功能和增强功能
5.1. 核心容器的改进
5.2. 改善数据访问
5.3. JMS 改进
5.4. 网站改进
5.5. WebSocket 消息传递改进
5.6. 测试改进
6. Spring Framework 4.3 中的新功能和增强功能
6.1. 核心容器的改进
6.2. 改善数据访问
6.3. 缓存改进
6.4. JMS 改进
6.5. 网站改进
6.6. WebSocket 消息传递改进
6.7. 测试改进
6.8. 支持新一代的库和服务器
III. 核心技术
7. IoC 容器
7.1. Spring IoC 容器和 bean 简介
7.2. 容器概述
7.2.1. 配置元数据
7.2.2. 实例化容器
组成基于 XML 的配置元数据
Groovy Bean 定义 DSL
7.2.3. 使用容器
7.3. Bean 概述
7.3.1. 命名 bean
在 bean 定义之外别名 bean
7.3.2. 实例化 bean
用构造函数实例化
用静态工厂方法实例化
使用实例工厂方法实例化
7.4. Dependencies
7.4.1. 依赖注入
基于构造函数的依赖注入
基于 Setter 的依赖注入
依赖性解析过程
依赖注入的例子
7.4.2. 依存关系和配置的详细信息
直值(基元,字符串等)
对其他 bean 的引用(合作者)
Inner beans
Collections
空字符串值和空字符串值
具有 p-namespace 的 XML 快捷方式
具有 c-namespace 的 XML 快捷方式
复合属性名称
7.4.3. 使用依赖
7.4.4. 延迟初始化的 bean
7.4.5. 自动装配合作者
自动接线的局限性和缺点
从自动装配中排除 bean
7.4.6. 方法注入
查找方法注入
任意方法替换
7.5. Bean 作用域
7.5.1. 单例范围
7.5.2. 原型范围
7.5.3. 具有原型 bean 依赖项的 Singleton bean
7.5.4. 请求,会话,全局会话,应用程序和 WebSocket 范围
初始 Web 配置
Request scope
Session scope
Global 会议范围
Application scope
范围 bean 作为依赖项
7.5.5. 自定义范围
创建自定义范围
使用自定义范围
7.6. 自定义 bean 的性质
7.6.1. 生命周期回调
Initialization callbacks
Destruction callbacks
默认的初始化和销毁方法
结合生命周期机制
启动和关闭回调
在非 Web 应用程序中正常关闭 Spring IoC 容器
7.6.2. ApplicationContextAware 和 BeanNameAware
7.6.3. 其他感知接口
7.7. Bean 定义继承
7.8. 容器扩展点
7.8.1. 使用 BeanPostProcessor 自定义 bean
示例:Hello World,BeanPostProcessor 风格
示例:RequiredAnnotationBeanPostProcessor
7.8.2. 使用 BeanFactoryPostProcessor 自定义配置元数据
示例:类名替换 PropertyPlaceholderConfigurer
示例:PropertyOverrideConfigurer
7.8.3. 使用 FactoryBean 自定义实例化逻辑
7.9. 基于 Comments 的容器配置
7.9.1. @Required
7.9.2. @Autowired
7.9.3. 使用@Primary 微调基于 Comments 的自动装配
7.9.4. 使用限定符微调基于 Comments 的自动装配
7.9.5. 将泛型用作自动装配限定符
7.9.6. CustomAutowireConfigurer
7.9.7. @Resource
7.9.8. @PostConstruct 和@PreDestroy
7.10. Classpath 扫描和托管组件
7.10.1. @Component 和其他构造型 Comments
7.10.2. Meta-annotations
7.10.3. 自动检测类并注册 Bean 定义
7.10.4. 使用过滤器自定义扫描
7.10.5. 在组件中定义 bean 元数据
7.10.6. 命名自动检测的组件
7.10.7. 为自动检测的组件提供范围
7.10.8. 提供带有 Comments 的限定符元数据
7.11. 使用 JSR 330 标准 Comments
7.11.1. 使用@Inject 和@Named 进行依赖注入
7.11.2. @Named 和@ManagedBean:@ComponentComments 的标准等效项
7.11.3. JSR-330 标准 Comments 的局限性
7.12. 基于 Java 的容器配置
7.12.1. 基本概念:@Bean 和@Configuration
7.12.2. 使用 AnnotationConfigApplicationContext 实例化 Spring 容器
Simple construction
使用寄存器以编程方式构建容器(Class <?>…)
使用 scan(String ...)启用组件扫描
使用 AnnotationConfigWebApplicationContext 支持 Web 应用程序
7.12.3. 使用@Bean 注解
声明一个 bean
Bean dependencies
接收生命周期回调
指定 bean 范围
自定义 Bean 命名
Bean aliasing
Bean description
7.12.4. 使用@Configuration 注解
注入 bean 间依赖
查找方法注入
有关基于 Java 的配置如何在内部工作的更多信息
7.12.5. 编写基于 Java 的配置
使用@Import 注解
有条件地包含@Configuration 类或@Bean 方法
结合 Java 和 XML 配置
7.13. 环境抽象
7.13.1. Bean 定义配置文件
@Profile
XML bean 定义配置文件
激活 Profile
Default profile
7.13.2. PropertySource 抽象
7.13.3. @PropertySource
7.13.4. 语句中的占位符解析
7.14. 注册 LoadTimeWeaver
7.15. ApplicationContext 的其他功能
7.15.1. 使用 MessageSource 进行国际化
7.15.2. 标准和自定义事件
基于 Comments 的事件监听器
Asynchronous Listeners
Ordering listeners
Generic events
7.15.3. 方便访问低级资源
7.15.4. Web 应用程序的便捷 ApplicationContext 实例化
7.15.5. 将 Spring ApplicationContext 部署为 Java EE RAR 文件
7.16. BeanFactory
7.16.1. BeanFactory 或 ApplicationContext?
7.16.2. 胶水代码和邪恶的单例
8. Resources
8.1. Introduction
8.2. 资源界面
8.3. 内置资源实现
8.3.1. UrlResource
8.3.2. ClassPathResource
8.3.3. FileSystemResource
8.3.4. ServletContextResource
8.3.5. InputStreamResource
8.3.6. ByteArrayResource
8.4. ResourceLoader
8.5. ResourceLoaderAware 界面
8.6. 资源作为依赖项
8.7. 应用程序上下文和资源路径
8.7.1. 构建应用程序上下文
构造 ClassPathXmlApplicationContext 实例-快捷方式
8.7.2. 应用程序上下文构造函数资源路径中的通配符
Ant-style Patterns
classpath *:前缀
有关通配符的其他说明
8.7.3. FileSystemResource 警告
9. 验证,数据绑定和类型转换
9.1. Introduction
9.2. 使用 Spring 的 Validator 界面进行验证
9.3. 解决错误消息的代码
9.4. Bean 操作和 BeanWrapper
9.4.1. 设置并获取基本和嵌套属性
9.4.2. 内置的 PropertyEditor 实现
注册其他自定义 PropertyEditor
9.5. Spring 类型转换
9.5.1. 转换器 SPI
9.5.2. ConverterFactory
9.5.3. GenericConverter
ConditionalGenericConverter
9.5.4. ConversionService API
9.5.5. 配置 ConversionService
9.5.6. 以编程方式使用 ConversionService
9.6. Spring 字段格式
9.6.1. Formatter SPI
9.6.2. Comments 驱动的格式
格式 CommentsAPI
9.6.3. FormatterRegistry SPI
9.6.4. FormatterRegistrar SPI
9.6.5. 在 Spring MVC 中配置格式
9.7. 配置全局日期和时间格式
9.8. Spring 验证
9.8.1. JSR-303 Bean 验证 API 概述
9.8.2. 配置 Bean 验证提供程序
注入验证器
配置自定义约束
Spring 驱动方法验证
其他配置选项
9.8.3. 配置 DataBinder
9.8.4. Spring MVC 3 验证
10. Spring 表达语言(SpEL)
10.1. Introduction
10.2. Evaluation
10.2.1. EvaluationContext
Type conversion
10.2.2. 解析器配置
10.2.3. SpEL 编译
Compiler configuration
Compiler limitations
10.3. bean 定义中的表达式
10.3.1. XML 配置
10.3.2. Comments 配置
10.4. 语言参考
10.4.1. Literals 表达
10.4.2. 属性,数组,列表,Map,索引器
10.4.3. 内联列表
10.4.4. 内嵌 Map
10.4.5. 阵列构造
10.4.6. Methods
10.4.7. Operators
Relational operators
Logical operators
Mathematical operators
10.4.8. Assignment
10.4.9. Types
10.4.10. Constructors
10.4.11. Variables
#this 和#root 变量
10.4.12. Functions
10.4.13. Bean 参考
10.4.14. 三元运算符(If-Then-Else)
10.4.15. Elvis 操作员
10.4.16. 安全导航操作员
10.4.17. 收藏集选择
10.4.18. 集合投影
10.4.19. 表情模板
10.5. 示例中使用的类
11. Spring 面向方面的编程
11.1. Introduction
11.1.1. AOP 概念
11.1.2. Spring AOP 功能和目标
11.1.3. AOP 代理
11.2. @AspectJ 支持
11.2.1. 启用@AspectJ 支持
通过 Java 配置启用@AspectJ 支持
通过 XML 配置启用@AspectJ 支持
11.2.2. 声明一个方面
11.2.3. 声明切入点
支持的切入点指示符
组合切入点表达式
共享通用切入点定义
Examples
写好切入点
11.2.4. 声明建议
Before advice
返回建议后
提出建议后
经过(最后)建议
Around advice
Advice parameters
Advice ordering
11.2.5. Introductions
11.2.6. 方面实例化模型
11.2.7. Example
11.3. 基于架构的 AOP 支持
11.3.1. 声明一个方面
11.3.2. 声明切入点
11.3.3. 声明建议
Before advice
返回建议后
提出建议后
经过(最后)建议
Around advice
Advice parameters
Advice ordering
11.3.4. Introductions
11.3.5. 方面实例化模型
11.3.6. Advisors
11.3.7. Example
11.4. 选择要使用的 AOP 声明样式
11.4.1. Spring AOP 还是完整的 AspectJ?
11.4.2. @AspectJ 还是 Spring AOP 的 XML?
11.5. 混合方面类型
11.6. 代理机制
11.6.1. 了解 AOP 代理
11.7. 以编程方式创建@AspectJ 代理
11.8. 将 AspectJ 与 Spring 应用程序一起使用
11.8.1. 使用 AspectJ 通过 Spring 依赖注入域对象
单元测试@Configurable 对象
使用多个应用程序上下文
11.8.2. AspectJ 的其他 Spring 方面
11.8.3. 使用 Spring IoC 配置 AspectJ 方面
11.8.4. 在 Spring Framework 中使用 AspectJ 进行加载时编织
第一个例子
Aspects
'META-INF/aop.xml'
所需的库(JARS)
Spring configuration
Environment-specific configuration
11.9. 其他资源
12. Spring AOP API
12.1. Introduction
12.2. Spring 中的 Pointcut API
12.2.1. Concepts
12.2.2. 切入点的操作
12.2.3. AspectJ 表达式切入点
12.2.4. 便捷切入点实现
Static pointcuts
Dynamic pointcuts
12.2.5. 切入点超类
12.2.6. 自定义切入点
12.3. Spring 咨询 API
12.3.1. 咨询生命周期
12.3.2. Spring 的建议类型
围绕建议进行拦截
Before advice
Throws advice
return后的建议
Introduction advice
12.4. Spring 的 Advisor API
12.5. 使用 ProxyFactoryBean 创建 AOP 代理
12.5.1. Basics
12.5.2. JavaBean 属性
12.5.3. 基于 JDK 和 CGLIB 的代理
12.5.4. 代理接口
12.5.5. 代理类
12.5.6. 使用“全局”顾问
12.6. 简洁的代理定义
12.7. 使用 ProxyFactory 以编程方式创建 AOP 代理
12.8. 处理建议对象
12.9. 使用“自动代理”功能
12.9.1. 自动代理 bean 定义
BeanNameAutoProxyCreator
DefaultAdvisorAutoProxyCreator
AbstractAdvisorAutoProxyCreator
12.9.2. 使用元数据驱动的自动代理
12.10. 使用 TargetSources
12.10.1. 可热插拔的目标源
12.10.2. 汇集目标源
12.10.3. 原型目标源
12.10.4. ThreadLocal 目标源
12.11. 定义新的建议类型
12.12. 其他资源
IV. Testing
13. Spring 测试简介
14. Unit Testing
14.1. 模拟对象
14.1.1. Environment
14.1.2. JNDI
14.1.3. Servlet API
14.1.4. Portlet API
14.2. 单元测试支持类
14.2.1. 通用测试 Util
14.2.2. Spring MVC
15. Integration Testing
15.1. Overview
15.2. 集成测试的目标
15.2.1. 上下文 Management 和缓存
15.2.2. 测试夹具的依赖注入
15.2.3. TransactionManagement
15.2.4. 集成测试支持类
15.3. JDBC 测试支持
15.4. Annotations
15.4.1. Spring 测试 Comments
@BootstrapWith
@ContextConfiguration
@WebAppConfiguration
@ContextHierarchy
@ActiveProfiles
@TestPropertySource
@DirtiesContext
@TestExecutionListeners
@Commit
@Rollback
@BeforeTransaction
@AfterTransaction
@Sql
@SqlConfig
@SqlGroup
15.4.2. 标准 Comments 支持
15.4.3. Spring JUnit 4 测试 Comments
@IfProfileValue
@ProfileValueSourceConfiguration
@Timed
@Repeat
15.4.4. 测试的元 Comments 支持
15.5. Spring TestContext 框架
15.5.1. 关键抽象
TestContext
TestContextManager
TestExecutionListener
Context Loaders
15.5.2. 引导 TestContext 框架
15.5.3. TestExecutionListener 配置
注册自定义 TestExecutionListeners
自动发现默认的 TestExecutionListeners
Ordering TestExecutionListeners
Merging TestExecutionListeners
15.5.4. 上下文 Management
使用 XML 资源进行上下文配置
使用 Groovy 脚本进行上下文配置
带 Comments 类的上下文配置
混合 XML,Groovy 脚本和带 Comments 的类
使用上下文初始化程序进行上下文配置
上下文配置继承
使用环境配置文件进行上下文配置
具有测试属性源的上下文配置
加载 WebApplicationContext
Context caching
Context hierarchies
15.5.5. 测试夹具的依赖注入
15.5.6. 测试请求和会话范围的 Bean
15.5.7. TransactionManagement
Test-managed transactions
启用和禁用 Transaction
事务回滚和提交行为
程序化 TransactionManagement
在事务之外执行代码
配置 TransactionManagement 器
演示所有与 Transaction 相关的 Comments
15.5.8. 执行 SQL 脚本
以编程方式执行 SQL 脚本
使用@Sql 声明式执行 SQL 脚本
15.5.9. TestContext Framework 支持类
Spring JUnit 4 运行器
Spring JUnit 4 规则
JUnit 4 支持类
JUnit 5 支持
TestNG 支持类
15.6. Spring MVC 测试框架
15.6.1. 服务器端测试
Static Imports
Setup Choices
Performing Requests
Defining Expectations
Filter Registrations
容器外测试与端到端集成测试之间的差异
进一步的服务器端测试示例
15.6.2. HtmlUnit 集成
为什么要进行 HtmlUnit 集成?
MockMvc 和 HtmlUnit
MockMvc 和 WebDriver
MockMvc 和 Geb
15.6.3. Client 端 REST 测试
Static Imports
Client 端 REST 测试的更多示例
15.7. PetClinic 示例
16. Further Resources
V. 数据访问
17. Transaction Management
17.1. Spring Framework 事务 Management 简介
17.2. Spring 框架的 Transaction 支持模型的优势
17.2.1. GlobalTransaction
17.2.2. 本地 Transaction
17.2.3. Spring 框架的一致编程模型
17.3. 了解 Spring Framework 事务抽象
17.4. 将资源与事务同步
17.4.1. 高级同步方法
17.4.2. 低层同步方法
17.4.3. TransactionAwareDataSourceProxy
17.5. 声明式事务 Management
17.5.1. 了解 Spring 框架的声明式事务实现
17.5.2. 声明式事务实现示例
17.5.3. 回滚声明式事务
17.5.4. 为不同的 bean 配置不同的事务语义
17.5.5. <+1+>设置
17.5.6. 使用@Transactional
@Transactional settings
具有@Transactional 的多个事务 Management 器
自定义快捷方式 Comments
17.5.7. Transaction 传播
Required
RequiresNew
Nested
17.5.8. 为 Transaction 操作提供建议
17.5.9. 通过 AspectJ 使用@Transactional
17.6. 程序化 TransactionManagement
17.6.1. 使用 TransactionTemplate
指定 Transaction 设置
17.6.2. 使用 PlatformTransactionManager
17.7. 在程序化和声明式事务 Management 之间进行选择
17.8. Transaction 绑定事件
17.9. 特定于应用程序服务器的集成
17.9.1. IBM WebSphere
17.9.2. Oracle WebLogic Server
17.10. 常见问题的解决方案
17.10.1. 为特定的数据源使用了错误的事务 Management 器
17.11. 其他资源
18. DAO support
18.1. Introduction
18.2. 一致的异常层次结构
18.3. 用于配置 DAO 或存储库类的 Comments
19. 使用 JDBC 进行数据访问
19.1. Spring Framework JDBC 简介
19.1.1. 选择用于 JDBC 数据库访问的方法
19.1.2. 包层次结构
19.2. 使用 JDBC 核心类控制基本的 JDBC 处理和错误处理
19.2.1. JdbcTemplate
JdbcTemplate 类用法的示例
JdbcTemplate 最佳做法
19.2.2. NamedParameterJdbcTemplate
19.2.3. SQLExceptionTranslator
19.2.4. 执行语句
19.2.5. 正在运行查询
19.2.6. 更新数据库
19.2.7. 检索自动生成的密钥
19.3. 控制数据库连接
19.3.1. DataSource
19.3.2. DataSourceUtils
19.3.3. SmartDataSource
19.3.4. AbstractDataSource
19.3.5. SingleConnectionDataSource
19.3.6. DriverManagerDataSource
19.3.7. TransactionAwareDataSourceProxy
19.3.8. DataSourceTransactionManager
19.3.9. NativeJdbcExtractor
19.4. JDBC 批处理操作
19.4.1. 使用 JdbcTemplate 的基本批处理操作
19.4.2. 具有对象列表的批处理操作
19.4.3. 具有多个批次的批次操作
19.5. 使用 SimpleJdbc 类简化 JDBC 操作
19.5.1. 使用 SimpleJdbcInsert 插入数据
19.5.2. 使用 SimpleJdbcInsert 检索自动生成的密钥
19.5.3. 为 SimpleJdbcInsert 指定列
19.5.4. 使用 SqlParameterSource 提供参数值
19.5.5. 使用 SimpleJdbcCall 调用存储过程
19.5.6. 明确声明要用于 SimpleJdbcCall 的参数
19.5.7. 如何定义 SqlParameters
19.5.8. 使用 SimpleJdbcCall 调用存储的函数
19.5.9. 从 SimpleJdbcCall 返回 ResultSet/REF 游标
19.6. 将 JDBC 操作建模为 Java 对象
19.6.1. SqlQuery
19.6.2. MappingSqlQuery
19.6.3. SqlUpdate
19.6.4. StoredProcedure
19.7. 参数和数据值处理的常见问题
19.7.1. 提供参数的 SQL 类型信息
19.7.2. 处理 BLOB 和 CLOB 对象
19.7.3. 传入 IN 子句的值列表
19.7.4. 处理存储过程调用的复杂类型
19.8. 嵌入式数据库支持
19.8.1. 为什么使用嵌入式数据库?
19.8.2. 使用 Spring XML 创建嵌入式数据库
19.8.3. 以编程方式创建嵌入式数据库
19.8.4. 选择嵌入式数据库类型
Using HSQL
Using H2
Using Derby
19.8.5. 使用嵌入式数据库测试数据访问逻辑
19.8.6. 为嵌入式数据库生成唯一名称
19.8.7. 扩展嵌入式数据库支持
19.9. 初始化数据源
19.9.1. 使用 Spring XML 初始化数据库
初始化依赖于数据库的其他组件
20. 对象关系 Map(ORM)数据访问
20.1. Spring 的 ORM 简介
20.2. 一般 ORM 整合注意事项
20.2.1. 资源和 TransactionManagement
20.2.2. 异常翻译
20.3. Hibernate
20.3.1. 在 Spring 容器中设置 SessionFactory
20.3.2. 基于普通的 Hibernate API 实现 DAO
20.3.3. 声明式事务划分
20.3.4. 程序化 Transaction 划分
20.3.5. TransactionManagement 策略
20.3.6. 比较容器 Management 的资源和本地定义的资源
20.3.7. Hibernate 的虚假应用程序服务器警告
20.4. JDO
20.4.1. PersistenceManagerFactory 设置
20.4.2. 根据普通的 JDO API 实现 DAO
20.4.3. TransactionManagement
20.4.4. JdoDialect
20.5. JPA
20.5.1. 在 Spring 环境中设置 JPA 的三个选项
LocalEntityManagerFactoryBean
从 JNDI 获取 EntityManagerFactory
LocalContainerEntityManagerFactoryBean
处理多个持久性单元
20.5.2. 基于 JPA 实施 DAO:EntityManagerFactory 和 EntityManager
20.5.3. Spring 驱动的 JPATransaction
20.5.4. JpaDialect 和 JpaVendorAdapter
20.5.5. 使用 JTA 事务 Management 设置 JPA
21. 使用 O/XMap 器编组 XML
21.1. Introduction
21.1.1. 易于配置
21.1.2. 一致的界面
21.1.3. 一致的异常层次结构
21.2. Marshaller 和 Unmarshaller
21.2.1. Marshaller
21.2.2. Unmarshaller
21.2.3. XmlMappingException
21.3. 使用 Marshaller 和 Unmarshaller
21.4. XML 配置名称空间
21.5. JAXB
21.5.1. Jaxb2Marshaller
XML 配置名称空间
21.6. Castor
21.6.1. CastorMarshaller
21.6.2. Mapping
XML 配置名称空间
21.7. XMLBeans
21.7.1. XmlBeansMarshaller
XML 配置名称空间
21.8. JiBX
21.8.1. JibxMarshaller
XML 配置名称空间
21.9. XStream
21.9.1. XStreamMarshaller
VI. 网络
22. Web MVC 框架
22.1. Spring Web MVC 框架简介
22.1.1. Spring Web MVC 的功能
22.1.2. 其他 MVC 实现的可插入性
22.2. DispatcherServlet
22.2.1. WebApplicationContext 中的特殊 Bean 类型
22.2.2. 默认的 DispatcherServlet 配置
22.2.3. DispatcherServlet 处理序列
22.3. 实施控制器
22.3.1. 使用@Controller 定义控制器
22.3.2. 使用@RequestMappingMap 请求
组成的@RequestMapping 变体
@Controller 和 AOP 代理
Spring MVC 3.1 中@RequestMapping 方法的新支持类
URI 模板模式
具有正则表达式的 URI 模板模式
Path Patterns
路径模式比较
占位符的路径模式
后缀模式匹配
后缀模式匹配和 RFD
Matrix Variables
消耗媒体类型
可生产的媒体类型
请求参数和标题值
HTTP HEAD 和 HTTP 选项
22.3.3. 定义@RequestMapping 处理程序方法
支持的方法参数类型
支持的方法返回类型
使用@RequestParam 将请求参数绑定到方法参数
使用@RequestBodyCommentsMap 请求主体
使用@ResponseBody 注解 Map 响应主体
使用@RestControllerComments 创建 REST 控制器
Using HttpEntity
在方法上使用@ModelAttribute
在方法参数上使用@ModelAttribute
使用@SessionAttributes 在请求之间的 HTTP 会话中存储模型属性
使用@SessionAttribute 访问预先存在的全局会话属性
使用@RequestAttribute 访问请求属性
使用“应用程序/ x-www-form-urlencoded”数据
使用@CookieValue 注解 Mapcookie 值
使用@RequestHeader 注解 Map 请求 Headers 属性
方法参数和类型转换
自定义 WebDataBinder 初始化
使用@ControllerAdvice 和@RestControllerAdvice 为控制器提供建议
Jackson 序列化视图支持
Jackson JSONP 支持
22.3.4. 异步请求处理
异步请求的异常处理
拦截异步请求
HTTP Streaming
HTTP 流与服务器发送的事件
直接将 HTTP 流传输到 OutputStream
配置异步请求处理
22.3.5. 测试控制器
22.4. 处理程序 Map
22.4.1. 使用 HandlerInterceptor 拦截请求
22.5. 解决视图
22.5.1. 使用 ViewResolver 界面解析视图
22.5.2. 链接 ViewResolvers
22.5.3. 重定向到视图
RedirectView
redirect:前缀
前进:前缀
22.5.4. ContentNegotiatingViewResolver
22.6. 使用 Flash 属性
22.7. 构建 URI
22.7.1. 为控制器和方法构建 URI
22.7.2. 使用“ Forwarded”和“ X-Forwarded- *”标题
22.7.3. 从视图向控制器和方法构建 URI
22.8. 使用语言环境
22.8.1. 获取时区信息
22.8.2. AcceptHeaderLocaleResolver
22.8.3. CookieLocaleResolver
22.8.4. SessionLocaleResolver
22.8.5. LocaleChangeInterceptor
22.9. 使用主题
22.9.1. 主题概述
22.9.2. 定义主题
22.9.3. 主题解析器
22.10. Spring 的 Multipart(文件上传)支持
22.10.1. Introduction
22.10.2. 将 MultipartResolver 与 Commons FileUpload 一起使用
22.10.3. 在 Servlet 3.0 中使用 MultipartResolver
22.10.4. 处理表单中的文件上传
22.10.5. 处理来自编程 Client 端的文件上传请求
22.11. 处理 exception
22.11.1. HandlerExceptionResolver
22.11.2. @ExceptionHandler
22.11.3. 处理标准 Spring MVC 异常
22.11.4. 使用@ResponseStatusComments 业务异常
22.11.5. 自定义默认 Servlet 容器错误页面
22.12. 网络安全
22.13. 约定优于配置支持
22.13.1. 控制器 ControllerClassNameHandlerMapping
22.13.2. 模型 ModelMap(ModelAndView)
22.13.3. 默认视图名称
22.14. HTTP 缓存支持
22.14.1. Cache-Control HTTPHeaders
22.14.2. 对静态资源的 HTTP 缓存支持
22.14.3. 支持控制器中的 Cache-Control,ETag 和 Last-Modified 响应 Headers
22.14.4. 浅 ETag 支持
22.15. 基于代码的 Servlet 容器初始化
22.16. 配置 Spring MVC
22.16.1. 启用 MVC Java Config 或 MVC XML 命名空间
22.16.2. 自定义提供的配置
22.16.3. 转换和格式化
22.16.4. Validation
22.16.5. Interceptors
22.16.6. 内容协商
22.16.7. 查看控制器
22.16.8. 查看解析器
22.16.9. 服务资源
22.16.10. 默认 Servlet
22.16.11. 路径匹配
22.16.12. 消息转换器
22.16.13. 使用 MVC Java Config 进行高级自定义
22.16.14. MVC 命名空间的高级自定义
23. View Technologies
23.1. Introduction
23.2. Thymeleaf
23.3. Groovy 标记
23.3.1. Configuration
23.3.2. Example
23.4. 速度和 FreeMarker
23.4.1. Dependencies
23.4.2. 上下文配置
23.4.3. 创建模板
23.4.4. 高级配置
velocity.properties
FreeMarker
23.4.5. 绑定支持和表单处理
绑定宏
Simple binding
表单 Importing 生成宏
HTML 转义和 XHTML 合规性
23.5. JSP 和 JSTL
23.5.1. 查看解析器
23.5.2. “纯朴的” JSP 与 JSTL
23.5.3. Spring 的 JSP 标签库
23.5.4. Spring 的表单标签库
Configuration
表单标签
Importing 标签
复选框标签
复选框标签
单选按钮标签
单选按钮标签
密码标签
选择标签
选项标签
选项标签
textarea 标签
隐藏的标签
错误标签
HTTP 方法转换
HTML5 tags
23.6. 脚本视图
23.6.1. Requirements
23.6.2. 脚本模板
23.7. XML 编组
23.8. Tiles
23.8.1. Dependencies
23.8.2. Configuration
UrlBasedViewResolver
ResourceBundleViewResolver
SimpleSpringPreparerFactory 和 SpringBeanPreparerFactory
23.9. XSLT
23.9.1. Beans
23.9.2. Controller
23.9.3. Transformation
23.10. 文档视图:PDF,Excel
23.10.1. Introduction
23.10.2. Configuration
23.10.3. 查看定义
23.10.4. Controller
23.10.5. Excel 视图
23.10.6. PDF 查看
23.11. JasperReports
23.11.1. Dependencies
23.11.2. Configuration
配置 ViewResolver
配置视图
关于报告文件
Using JasperReportsMultiFormatView
23.11.3. 填充 ModelAndView
23.11.4. 处理子报表
配置子报告文件
配置子报表数据源
23.11.5. 配置导出器参数
23.12. Feed 视图:RSS,Atom
23.13. JSONMap 视图
23.14. XMLMap 视图
24. 与其他 Web 框架集成
24.1. Introduction
24.2. 常用配置
24.3. JavaServer Faces 1.2
24.3.1. SpringBeanFacesELResolver(JSF 1.2)
24.3.2. FacesContextUtils
24.4. Apache Struts 2.x
24.5. Tapestry 5.x
24.6. 其他资源
25. Portlet MVC 框架
25.1. Introduction
25.1.1. 控制器-MVC 中的 C
25.1.2. 视图-MVC 中的 V
25.1.3. Web 范围的 bean
25.2. DispatcherPortlet
25.3. ViewRendererServlet
25.4. Controllers
25.4.1. AbstractController 和 PortletContentGenerator
25.4.2. 其他简单控制器
25.4.3. 命令控制器
25.4.4. PortletWrappingController
25.5. 处理程序 Map
25.5.1. PortletModeHandlerMapping
25.5.2. ParameterHandlerMapping
25.5.3. PortletModeParameterHandlerMapping
25.5.4. 添加 HandlerInterceptor
25.5.5. HandlerInterceptorAdapter
25.5.6. ParameterMappingInterceptor
25.6. 视图并解决
25.7. Multipart(文件上传)支持
25.7.1. 使用 PortletMultipartResolver
25.7.2. 处理表单中的文件上传
25.8. 处理 exception
25.9. 基于 Comments 的控制器配置
25.9.1. 设置调度程序以支持 Comments
25.9.2. 使用@Controller 定义控制器
25.9.3. 使用@RequestMappingMap 请求
25.9.4. 支持的处理程序方法参数
25.9.5. 使用@RequestParam 将请求参数绑定到方法参数
25.9.6. 使用@ModelAttribute 提供指向模型数据的链接
25.9.7. 使用@SessionAttributes 指定要存储在会话中的属性
25.9.8. 自定义 WebDataBinder 初始化
使用@InitBinder 自定义数据绑定
配置自定义 WebBindingInitializer
25.10. Portlet 应用程序部署
26. WebSocket Support
26.1. Introduction
26.1.1. WebSocket 后备选项
26.1.2. 消息传递架构
26.1.3. WebSocket 中的子协议支持
26.1.4. 我应该使用 WebSocket 吗?
26.2. WebSocket API
26.2.1. WebSocketHandler
26.2.2. WebSocket 握手
26.2.3. WebSocketHandler 装饰
26.2.4. Deployment
26.2.5. 配置 WebSocket 引擎
26.2.6. 配置允许的来源
26.3. SockJS 后备
26.3.1. Overview
26.3.2. 启用 SockJS
26.3.3. IE 8、9
26.3.4. Heartbeats
26.3.5. Client 端断开连接
26.3.6. SockJS 和 CORS
26.3.7. SockJsClient
26.4. STOMP
26.4.1. Overview
26.4.2. Benefits
26.4.3. 启用 STOMP
26.4.4. 消息流
26.4.5. 带 Comments 的控制器
@MessageMapping
@SubscribeMapping
@MessageExceptionHandler
26.4.6. 发送消息
26.4.7. 简单 broker
26.4.8. 外部 broker
26.4.9. 连接到 broker
26.4.10. 点作为分隔符
26.4.11. Authentication
26.4.12. 令牌认证
26.4.13. 用户目的地
26.4.14. 事件和拦截
26.4.15. STOMPClient 端
26.4.16. WebSocket 范围
26.4.17. Performance
26.4.18. Monitoring
26.4.19. Testing
27. CORS Support
27.1. Introduction
27.2. 控制器方法 CORS 配置
27.3. 全局 CORS 配置
27.3.1. JavaConfig
27.3.2. XML 名称空间
27.4. 高级定制
27.5. 基于过滤器的 CORS 支持
VII. Integration
28. 使用 Spring 进行远程和 Web 服务
28.1. Introduction
28.2. 使用 RMI 公开服务
28.2.1. 使用 RmiServiceExporter 导出服务
28.2.2. 在 Client 端链接服务
28.3. 使用粗麻布或粗麻布通过 HTTP 远程调用服务
28.3.1. 为 Hessian 和 co.布线 DispatcherServlet.
28.3.2. 使用 HessianServiceExporter 公开您的 bean
28.3.3. 在 Client 端上链接服务
28.3.4. 使用粗麻布
28.3.5. 将 HTTP 基本身份验证应用于通过 Hessian 或 Burlap 公开的服务
28.4. 使用 HTTP 调用程序公开服务
28.4.1. 公开服务对象
28.4.2. 在 Client 端链接服务
28.5. Web 服务
28.5.1. 使用 JAX-WS 公开基于 servlet 的 Web 服务
28.5.2. 使用 JAX-WS 导出独立的 Web 服务
28.5.3. 使用 JAX-WS RI 的 Spring 支持导出 Web 服务
28.5.4. 使用 JAX-WS 访问 Web 服务
28.6. JMS
28.6.1. 服务器端配置
28.6.2. Client 端配置
28.7. AMQP
28.8. 远程接口未实现自动检测
28.9. 选择技术时的注意事项
28.10. 在 Client 端上访问 RESTful 服务
28.10.1. RestTemplate
使用 URI
处理请求和响应头
Jackson JSON 视图支持
28.10.2. HTTP 消息转换
StringHttpMessageConverter
FormHttpMessageConverter
ByteArrayHttpMessageConverter
MarshallingHttpMessageConverter
MappingJackson2HttpMessageConverter
MappingJackson2XmlHttpMessageConverter
SourceHttpMessageConverter
BufferedImageHttpMessageConverter
28.10.3. 异步 RestTemplate
29. 企业 JavaBeans(EJB)集成
29.1. Introduction
29.2. 访问 EJB
29.2.1. Concepts
29.2.2. 访问本地 SLSB
29.2.3. 访问远程 SLSB
29.2.4. 访问 EJB 2.x SLSB 与 EJB 3 SLSB
29.3. 使用 Spring 的 EJB 实施支持类
29.3.1. EJB 3 注入拦截器
30. JMS(Java 消息服务)
30.1. Introduction
30.2. 使用 Spring JMS
30.2.1. JmsTemplate
30.2.2. Connections
缓存消息资源
SingleConnectionFactory
CachingConnectionFactory
30.2.3. 目的地 Management
30.2.4. 邮件监听器容器
SimpleMessageListenerContainer
DefaultMessageListenerContainer
30.2.5. TransactionManagement
30.3. 发送信息
30.3.1. 使用消息转换器
30.3.2. SessionCallback 和 ProducerCallback
30.4. 接收消息
30.4.1. 同步接收
30.4.2. 异步接收:消息驱动的 POJO
30.4.3. SessionAwareMessageListener 接口
30.4.4. MessageListenerAdapter
30.4.5. 处理 Transaction 中的消息
30.5. 支持 JCA 消息端点
30.6. 注解驱动的侦听器端点
30.6.1. 启用侦听器端点 Comments
30.6.2. 程序化端点注册
30.6.3. Comments 的端点方法签名
30.6.4. 响应 Management
30.7. JMS 名称空间支持
31. JMX
31.1. Introduction
31.2. 将 bean 导出到 JMX
31.2.1. 创建一个 MBeanServer
31.2.2. 重用现有的 MBeanServer
31.2.3. 延迟初始化的 MBean
31.2.4. MBean 的自动注册
31.2.5. 控制注册行为
31.3. 控制 bean 的 Management 界面
31.3.1. MBeanInfoAssembler 界面
31.3.2. 使用源代码级元数据:Java 注解
31.3.3. 源级别的元数据类型
31.3.4. AutodetectCapableMBeanInfoAssembler 接口
31.3.5. 使用 Java 接口定义 Management 接口
31.3.6. 使用 MethodNameBasedMBeanInfoAssembler
31.4. 控制您的 bean 的对象名
31.4.1. 从属性中读取对象名称
31.4.2. 使用元数据命名策略
31.4.3. 配置基于 Comments 的 MBean 导出
31.5. JSR-160 连接器
31.5.1. 服务器端连接器
31.5.2. Client 端连接器
31.5.3. 粗麻布/黑森 State/ SOAP 上的 JMX
31.6. 通过代理访问 MBean
31.7. Notifications
31.7.1. 注册监听器以接收通知
31.7.2. 发布通知
31.8. 其他资源
32. JCA CCI
32.1. Introduction
32.2. 配置 CCI
32.2.1. 连接器配置
32.2.2. Spring 中的 ConnectionFactory 配置
32.2.3. 配置 CCI 连接
32.2.4. 使用单个 CCI 连接
32.3. 使用 Spring 的 CCI 访问支持
32.3.1. 记录转换
32.3.2. CciTemplate
32.3.3. DAO 支持
32.3.4. 自动生成输出记录
32.3.5. Summary
32.3.6. 直接使用 CCI 连接和交互
32.3.7. CciTemplate 使用示例
32.4. 将 CCI 访问建模为操作对象
32.4.1. MappingRecordOperation
32.4.2. MappingCommAreaOperation
32.4.3. 自动生成输出记录
32.4.4. Summary
32.4.5. MappingRecordOperation 用法示例
32.4.6. MappingCommAreaOperation 用法示例
32.5. Transactions
33. Email
33.1. Introduction
33.2. Usage
33.2.1. MailSender 和 SimpleMailMessage 的基本用法
33.2.2. 使用 JavaMailSender 和 MimeMessagePreparator
33.3. 使用 JavaMail MimeMessageHelper
33.3.1. 发送附件和内联资源
Attachments
Inline resources
33.3.2. 使用模板库创建电子邮件内容
基于速度的示例
34. 任务执行和计划
34.1. Introduction
34.2. Spring TaskExecutor 抽象
34.2.1. TaskExecutor 类型
34.2.2. 使用 TaskExecutor
34.3. Spring TaskScheduler 抽象
34.3.1. 触发界面
34.3.2. 触发实施
34.3.3. TaskScheduler 的实现
34.4. 计划和异步执行的 Comments 支持
34.4.1. 启用计划 Comments
34.4.2. @Scheduled 注解
34.4.3. @Async 注解
34.4.4. 具有@Async 的执行人资格
34.4.5. 使用@Async 进行异常 Management
34.5. 任务名称空间
34.5.1. 'scheduler'元素
34.5.2. “执行程序”元素
34.5.3. “sched 任务”元素
34.6. 使用 Quartz Scheduler
34.6.1. 使用 JobDetailFactoryBean
34.6.2. 使用 MethodInvokingJobDetailFactoryBean
34.6.3. 使用触发器和 SchedulerFactoryBean 连接作业
35. 动态语言支持
35.1. Introduction
35.2. 第一个例子
35.3. 定义由动态语言支持的 bean
35.3.1. 常用概念
<+2+>元素
Refreshable beans
内联动态语言源文件
在动态语言支持的 bean 的上下文中了解构造函数注入
35.3.2. JRubybean
35.3.3. Groovybean
通过回调自定义 Groovy 对象
35.3.4. BeanShellbean
35.4. Scenarios
35.4.1. 脚本化 Spring MVC 控制器
35.4.2. 脚本验证器
35.5. 零碎
35.5.1. AOP-为脚本 bean 提供建议
35.5.2. Scoping
35.6. 其他资源
36. Cache Abstraction
36.1. Introduction
36.2. 了解缓存抽象
36.3. 基于声明式基于 Comments 的缓存
36.3.1. @可缓存 Comments
默认密钥生成
自定义密钥生成声明
默认缓存分辨率
自定义缓存分辨率
Synchronized caching
Conditional caching
可用的缓存 SpEL 评估上下文
36.3.2. @CachePut 注解
36.3.3. @CacheEvict 注解
36.3.4. @缓存 Comments
36.3.5. @CacheConfig 注解
36.3.6. 启用缓存 Comments
36.3.7. 使用自定义 Comments
36.4. JCache(JSR-107)注解
36.4.1. 功能摘要
36.4.2. 启用 JSR-107 支持
36.5. 基于 XML 的声明式缓存
36.6. 配置缓存存储
36.6.1. 基于 JDK ConcurrentMap 的缓存
36.6.2. 基于 Ehcache 的缓存
36.6.3. Caffeine 缓存
36.6.4. Guava 缓存
36.6.5. 基于 GemFire 的缓存
36.6.6. JSR-107 缓存
36.6.7. 处理没有后备存储的缓存
36.7. 插入不同的后端缓存
36.8. 如何设置 TTL/TTI /驱逐策略/ XXX 功能?
VIII. Appendices
37. 迁移到 Spring Framework 4.x
38. SpringComments 编程模型
39. 经典 Spring 用法
39.1. 经典 ORM 用法
39.1.1. Hibernate
The HibernateTemplate
实现不带回调的基于 Spring 的 DAO
39.2. JMS 用法
39.2.1. JmsTemplate
39.2.2. 异步消息接收
39.2.3. Connections
39.2.4. TransactionManagement
40. 经典 Spring AOP 用法
40.1. Spring 中的 Pointcut API
40.1.1. Concepts
40.1.2. 切入点的操作
40.1.3. AspectJ 表达式切入点
40.1.4. 便捷切入点实现
Static pointcuts
Dynamic pointcuts
40.1.5. 切入点超类
40.1.6. 自定义切入点
40.2. Spring 咨询 API
40.2.1. 咨询生命周期
40.2.2. Spring 的建议类型
围绕建议进行拦截
Before advice
Throws advice
return后的建议
Introduction advice
40.3. Spring 的 Advisor API
40.4. 使用 ProxyFactoryBean 创建 AOP 代理
40.4.1. Basics
40.4.2. JavaBean 属性
40.4.3. 基于 JDK 和 CGLIB 的代理
40.4.4. 代理接口
40.4.5. 代理类
40.4.6. 使用“全局”顾问
40.5. 简洁的代理定义
40.6. 使用 ProxyFactory 以编程方式创建 AOP 代理
40.7. 处理建议对象
40.8. 使用“自动代理”功能
40.8.1. 自动代理 bean 定义
BeanNameAutoProxyCreator
DefaultAdvisorAutoProxyCreator
AbstractAdvisorAutoProxyCreator
40.8.2. 使用元数据驱动的自动代理
40.9. 使用 TargetSources
40.9.1. 可热插拔的目标源
40.9.2. 汇集目标源
40.9.3. 原型目标源
40.9.4. ThreadLocal 目标源
40.10. 定义新的建议类型
40.11. 其他资源
41. 基于 XML 模式的配置
41.1. Introduction
41.2. 基于 XML 模式的配置
41.2.1. 引用架构
41.2.2. util 模式
<___+3+>
<___+4+>
<___+5+>
<___+6+>
<___+7+>
<___+8+>
41.2.3. jee 模式
<___+9+> (simple)
<+10+>(具有单个 JNDI 环境设置)
<+11+>(具有多个 JNDI 环境设置)
<___+12+> (complex)
<___+13+> (simple)
<___+14+> (complex)
<___+15+>
41.2.4. lang 模式
41.2.5. jms 模式
41.2.6. tx(Transaction)模式
41.2.7. aop 模式
41.2.8. 上下文架构
<property-placeholder/>
<annotation-config/>
<component-scan/>
<load-time-weaver/>
<spring-configured/>
<mbean-export/>
41.2.9. the tool schema
41.2.10. the jdbc schema
41.2.11. the cache schema
41.2.12. the beans schema
42. Extensible XML authoring
42.1. Introduction
42.2. Authoring the schema
42.3. Coding a NamespaceHandler
42.4. BeanDefinitionParser
42.5. Registering the handler and the schema
42.5.1. 'META-INF/spring.handlers'
42.5.2. 'META-INF/spring.schemas'
42.6. Using a custom extension in your Spring XML configuration
42.7. Meatier examples
42.7.1. Nesting custom tags within custom tags
42.7.2. Custom attributes on 'normal' elements
42.8. Further Resources
43. spring JSP Tag Library
43.1. Introduction
43.2. The argument tag
43.3. The bind tag
43.4. The escapeBody tag
43.5. The eval tag
43.6. The hasBindErrors tag
43.7. The htmlEscape tag
43.8. The message tag
43.9. The nestedPath tag
43.10. The param tag
43.11. The theme tag
43.12. The transform tag
43.13. The url tag
44. spring-form JSP Tag Library
44.1. Introduction
44.2. The button tag
44.3. The checkbox tag
44.4. The checkboxes tag
44.5. The errors tag
44.6. The form tag
44.7. The hidden tag
44.8. The input tag
44.9. The label tag
44.10. The option tag
44.11. The options tag
44.12. The password tag
44.13. The radiobutton tag
44.14. The radiobuttons tag
44.15. The select tag
44.16. The textarea tag
中文
English
A
A
Serif
Sans
White
Sepia
Night
首页
API Docs
工具
首页
API Docs
工具
37. 迁移到 Spring Framework 4.x
现在以
Wiki page
的形式提供从 Spring Framework 早期版本进行升级的迁移指南。
Name
Spring Framework 中文文档
Version
4.3.21.RELEASE
5.1.3.RELEASE
Language
English
中文
Badge
Last Updated
2021-07-05T14:07:32