下载APP 编程狮,随时随地学编程
返回 首页

Spring 教程

开始阅读
手册说明:


《Spring 教程》学前需知:

Spring 框架是一个开源的 Java 平台,它为容易而快速的开发出耐用的 Java 应用程序提供了全面的基础设施。

Spring 框架最初是由 Rod Johnson 编写的,并且 2003 年 6 月首次在 Apache 2.0 许可下发布。

本教程是基于在 2015 年 3 月发布的 Spring 框架 4.1.6 版本编写的。

适用人群

本教程是为需要详细了解 Spring 框架的体系结构和实际应用的 Java 程序员设计的。本教程将带你达到中级的专业知识水平,而你可以将自己提升至更高层次的专业知识水平。

学习前提

在进行本教程之前,你应该对 Java 编程语言有一个很好的了解。对 Eclipse IDE 的基本了解也是必须的,因为所有的示例都是使用 Eclipse IDE 进行编译的。

Spring的起源

当已经存在许多开放源代码(和专有)J2EEframework时,我们为什么还需要Spring Framework?

因为诸多原因让Spring变得独特:

它定位的领域是许多其他流行的framework没有的。

Spring致力于提供一种方法管理你的业务对象。

Spring是全面的和模块化的。

Spring有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。因此从你的学习中,你可得到最大的价值。例如,你可能选择仅仅使用Spring来简单化JDBC的使用,或用来管理所有的业务对象。

它的设计从底部帮助你编写易于测试的代码。Spring是用于测试驱动工程的理想的framework。

Spring对你的工程来说,它不需要一个以上的framework。Spring是潜在地一站式解决方案,定位于与典型应用相关的大部分基础结构。它也涉及到其他framework没有考虑到的内容。

可供参考的教程

《菜鸟学 SSH》

《Spring Boot 那些事》

《初识 Spring Security》

《Spring MVC 4.2.4.RELEASE 中文文档》

可供参考的编程微课

《Spring Boot基础入门》

《Spring:学习Quartz分布式任务调度》

目录
Spring 概述
Spring 体系结构
Spring 环境配置
Spring Hello World 实例

Spring IoC 容器

Spring BeanFactory 容器
Spring ApplicationContext 容器
Spring Bean 定义
Spring Bean 作用域
Spring Bean 生命周期
Spring Bean 后置处理器
Spring Bean 定义继承

Spring 依赖注入

Spring 基于构造函数的依赖注入
Spring 基于设值函数的依赖注入
Spring 注入内部 Beans
Spring 注入集合

Spring Beans 自动装配

Spring 自动装配 `byName`
Spring 自动装配 `byType`
Spring 由构造函数自动装配

Spring 基于注解的配置

Spring @Required 注释
Spring @Autowired 注释
Spring @Qualifier 注释
Spring JSR-250 注释
Spring 基于 Java 的配置
Spring 中的事件处理
Spring 中的自定义事件

Spring 框架的 AOP

Spring 中基于 AOP 的 XML架构
Spring 中基于 AOP 的 @AspectJ

Spring JDBC 框架

Spring JDBC 示例
Spring 中 SQL 的存储过程

Spring 事务管理

Spring 编程式事务管理
Spring 声明式事务管理

Spring Web MVC 框架

Spring MVC Hello World 例子
Spring MVC 表单处理例子
Spring 页面重定向例子
Spring 静态页面例子
Spring 异常处理例子
Spring 使用 Log4J 记录日志

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }