按照 Spring 官方最新的说法,Spring 是现代 Java 的起源。
不可否认,Spring 无论在 Java 生态系统,还是在就业市场,是绝对的王者。面试出镜率之高,投产规模之广,无出其右。随着技术的发展,Spring 从往日的 IoC 框架,已发展成 Cloud Native 基础设施,衍生出大量 Spring 技术栈,如大家熟知的 Spring Boot、Spring Cloud 和 Spring Security 等。因此,Spring 生态体系随之变得庞大,如 Apache Dubbo 对 Spring Framework 的整合,各类中间件 Spring Boot Starter,以及多种 Spring Cloud 实现方案。
开发人员面对突如其来的变化,无论在架构选型,还是在日常开发中,总会面临各种挑战和考验。唯有系统性地掌握 Spring Framework 编程思想、设计理念,以及具体的实现方式,方可游刃有余,以免进退失据。
作为 Spring 技术生态的基石,Spring Framework 无论在设计,还是在实现上,都是一个优秀的框架,许多细节方面是非常值得我们学习的,包括:
Java 语言特性的运用,如反射、动态代理、枚举、泛型、注解、ARM,Lambda 语法等
设计思想和模式的实现,如 OOP、IoC、DDD、TDD、GoF23 等
Java API 的封装和简化,如 JDBC、Transaction、Servlet、JPA、JMS、Bean Validation 等
JSR(Java Specification Requests)规范的适配和实现
第三方框架的整合和易用,如 MyBatis、Hibernate、Redis 等
收集了一份《Spring攻略(第二版)》希望能够让你步步为营,从功能特性到编程模型,从设计思想到技术规范,从理论基础到实战演练,集中精力各个击破,对 Spring Framework 有一个全方位地掌握,当然,这必然是一个痛苦而又漫长的心路历程,请拿出你跟产品斗智斗勇的勇气和毅力。

实例化SpringIOC容器
配置SpringIOC容器中的Bean
调用构造程序创建Bean
解决构造程序zhi歧义
指定Bean引用
为集合元素指定数据类型
使用Spring的FactoryBean
使用工厂Bean和Utility Schema
用依赖检查属性
用@Required注解检查属性
用XML配置自动装配Bean
用@Autowired和@Resource
继承Bean配置
从Classpath中扫描组件

调用静态工厂方法创建Bean
调用一个实例工厂方法创建
从静态字段中声明Bean
从对象属性中声明Bean
使用Spring表达式语言
设置Bean作用域
自定义Bean初始化和析构
用Java Config简化XML配置
使用Bean感知容器
加载外部资源
创建Bean后处理器
外部化Bean配置
解析文本消息
使用应用事件进行通信
在Spring中注册属性
创建自定义属性编辑器
使用TaskExecutor

启 Spring的 AspectJ 注解支持
AspectJ 解声明 aspect
访问连接点信息
指 定 aspect优先级
重用切入点定义
编 写 AspectJ切入点表达式
在你 的Bean中引入行为
为你的Bean引入状态
用基于XM L的配置
Spring 中的 Aspect! 载时织入aspect
在Spring中配置
将 Spring Bean注入领域对象

用脚本语言实现Bea
将 Spring Bean 入脚本中
从脚本中刷新Bean
定义内联脚本源码

加 强 URL访问安全
登录到Web应 用
验证用户
做出访问控制决策
加强方法调用的安全
处理视图中的安全性
处理领域对象安全性

在一 般Web应用中访问
在 你 的 Servlet和过滤器中
将 Spring 与 Struts 1 .x 集成
将 Spring 与 JSF 集成
将 Spring 与 DWR 集成

用Spring Web Flow管理简 的UI流程
用不到状态类型建立Web流程模型
加强Web流程安全
持续存储Web流程中的对象
将 Spring Web Flow 与 JSF集成
使 RichFaces 与 Spring Web Flow 协 作

用Sping MVC开发简单的Web应用
M@RequestM^)ping 映射请求
用处理程序拦截器拦截请求
解析用户区域
外部化区分区域的文本信息
按照名称解析视图
视图和内容协商
映射异常视图
控制器中赋值

用Spring发布一个REST服务
用Spring访问REST服务
发布RSS和Atom信息源
用REST服务发布JSON
访问具有复杂XML响应的REST服务

Flex入门
离开沙箱
为应用添加Spring BlazeDS支持
通过BlazeDS/Spring暴露服务
使用服务器端对象
使用BlazeDS和Spring消费面向消息的服务
将依赖注入带给你的ActionScript客户

获取和安装Grails
创建Grails应用
Grails插件
在Grails环境中开发、生产和测试
创建应用的领域类
为一个应用的领域类生成
国际化(118n)信息属性
改变永久性存储系统
日志
运行单元和集成测试
使用自定义布局和模板
使用GORM查询
创建自定义标记

设置Spring Roo开发环境
创建第一个Spring Roo项目
把现有项目导入SpringSource
更快的构建更好的应用程序
从项目中删除Spring Roo

用JUnit and TestNG创建测试
创建单元测试和集成测试
Spring MVC控制器的单元
管理集成测试中的应用上
向集成测试注入测试夹具
管理集成测试中的事务
在集成测试中访问的数据库
使用Spring的常用测试

用Spring Portler MVC开发一个简单的 Portlet
将Portlet请求映射到处理程序员
用简单的表单控制器处理

Direct JDBC的问题
使用JDBC模板更新
使用JDBC模板查询数据库
简化JDBC模板创建
在Java1.5中使用简单的JDBC模板
在JDBC模板中使用命名参数
在Spring JDBC框架中处理异常
直接使用ORM框架的问题
在Spring中配置ORM资源工厂
用SpringORM模板持续化对象
用Hibernate的上下文会话持续化对象
用JPA的上下文注入持续化对象

事务管理的问题
选择一个事务管理器实现
用事务管理器API编程管理事务
用事务模板编程管理事务
用事务通知声明式地管理事务
用@Transactionali 注解声明式地管理事务
设置事务传播属性
设置隔离事务属性
设置Rolback事务属性
设置超时和只读事务属性
用加载时织入管理事务

通过RMI暴露和调用服务
用Spring创建EJB2.x组件
在Spring中访问遗留的EJB2.x组件
在Spring中创建EJB3.0
在Spring中访问EJB3.0
通过HTTP暴露和调用服务
选择SOAP Web服务开发
使用JAX-WS暴露和调用Contract-Last SOAP Web
定义Web服务契约
使用Spring-WS实现Web服务
使用Spring-WS调用Web服务
用XML编组开发Web服务
用注解创建服务端点

将Spring Bean输出为JMX MBean
发布和监听JMX通知
在Spring中访问远程JMX MBean
用Spring电子邮件支持发送邮件
用Spring的Quartz支持进行调度
用Spring 3.0的调度命名空间进行调度




看完本文档你会学到很多Spring框架以及周边项目的知识!如果觉得不错的话可以一键三连哟,希望能帮到你!