这是一套 Spring Boot 的快速入门培训教程,面向的学员是有一定的 Java 基础,会一些 Spring 传统开发技能(SSM)的初中级 Java 开发工程师。
其目的是通过2-3个月的时间,每周完成1章节的教程学习(可能需要在一个学习小组内,通过辅导教员引导),达到能够应用 Spring Boot 进行开发的程度,向中级开发工程师进阶,进而打好后续学习 Spring Cloud 的基础。
虽然本教程提供了一个极简的 vue 入门学习章节,其目的只是用来演示如何开发“前后端分离”的应用,但是本教程并不会将前端开发作为重点。相反,在这里,我们只关心应用后端如何使用 Spring Boot 进行开发。
本教程规划于2019年春,动笔于2019年10月30日,希望完结于2019年12月31日,实际完结于2020年2月7日,历时101天,我也坚持连续写作101天。
任何时候出发,都不晚,相信我,风景总是在路上。
--Kevin Zhang
本教程使用的 Spring Boot 版本为2.2.1-2.2.4;
写作过程中,Spring Boot 从2.2.1持续升级到了2.2.4,可见 Spring Boot 社区的活跃。
本教程的每一章节,尽量聚焦在当前讨论的知识点范围内,示例也设计为最简;
本教程不涉及 Spring Boot 的深层次实现机制和如何扩展 Spring Boot 框架;
已经能够熟练使用 Spring Boot 进行开发的同学,请绕道,这份教程不适用于你。
其目的是通过2-3个月的时间,每周完成1章节的教程学习(可能需要在一个学习小组内,通过辅导教员引导),达到能够应用 Spring Boot 进行开发的程度,向中级开发工程师进阶,进而打好后续学习 Spring Cloud 的基础。
虽然本教程提供了一个极简的 vue 入门学习章节,其目的只是用来演示如何开发“前后端分离”的应用,但是本教程并不会将前端开发作为重点。相反,在这里,我们只关心应用后端如何使用 Spring Boot 进行开发。
本教程规划于2019年春,动笔于2019年10月30日,希望完结于2019年12月31日,实际完结于2020年2月7日,历时101天,我也坚持连续写作101天。
任何时候出发,都不晚,相信我,风景总是在路上。
--Kevin Zhang
本教程使用的 Spring Boot 版本为2.2.1-2.2.4;
写作过程中,Spring Boot 从2.2.1持续升级到了2.2.4,可见 Spring Boot 社区的活跃。
本教程的每一章节,尽量聚焦在当前讨论的知识点范围内,示例也设计为最简;
本教程不涉及 Spring Boot 的深层次实现机制和如何扩展 Spring Boot 框架;
已经能够熟练使用 Spring Boot 进行开发的同学,请绕道,这份教程不适用于你。
2021年11月03日 原生的 jdbc 操作并不友好:需要自己加载驱动、创建连接、写数据库查询/新增/修改/删除的 SQL(或调用存储过程)、自己控制事务、完成从数据库返回的 ResultSet(java.sql.ResultSet)中取数(字段值)并且再把这些数存放到对象中。整个过程比较复杂,经常重复,并且没有什么技术含量。
针对这种情况,各种 ORM( Object Relational Mapping, 对象关系映射)技术应运而生,解决关系数据库到 java 对象的匹配问题。在这个领域中,经常使用到的有 JPA、Hibernate、MyBatis 等 ORM 框架。
当然,在大部分项目情况下,我们都会直接使用更加强大的持久化框架来访问数据库,比如 MyBatis、Hibernate 或者 Spring Data JPA,但有的时候在项目中也会直接用到原生 jdbc 来操作数据库。我现在能够想到的唯一原因,就是原生 jdbc 直接、小巧、不引入第三方库。
但是,在 Spring 应用中,直接使用 jdbc 方式已经几乎见不到了。为了方便,Spring 对数据库的操作在 jdbc 上面做了更深层次的封装(也是非常薄的一层封装)。
Spring 封装提供的 JdbcTemplate 就是一个操作数据库的便捷工具。我们可以借助 JdbcTemplate 来执行所有数据库操作,例如插入,更新,删除和从数据库中检索数据,并且有效避免直接使用 jdbc 带来的繁琐编码工作。
针对这种情况,各种 ORM( Object Relational Mapping, 对象关系映射)技术应运而生,解决关系数据库到 java 对象的匹配问题。在这个领域中,经常使用到的有 JPA、Hibernate、MyBatis 等 ORM 框架。
当然,在大部分项目情况下,我们都会直接使用更加强大的持久化框架来访问数据库,比如 MyBatis、Hibernate 或者 Spring Data JPA,但有的时候在项目中也会直接用到原生 jdbc 来操作数据库。我现在能够想到的唯一原因,就是原生 jdbc 直接、小巧、不引入第三方库。
但是,在 Spring 应用中,直接使用 jdbc 方式已经几乎见不到了。为了方便,Spring 对数据库的操作在 jdbc 上面做了更深层次的封装(也是非常薄的一层封装)。
Spring 封装提供的 JdbcTemplate 就是一个操作数据库的便捷工具。我们可以借助 JdbcTemplate 来执行所有数据库操作,例如插入,更新,删除和从数据库中检索数据,并且有效避免直接使用 jdbc 带来的繁琐编码工作。
本书提供 spring、spring-boot、spring-cloud 的常用整合用例。每个用例都提供详细的图文说明,并给出官方文档的具体链接作为参考。随着 spring 的迭代,本仓库会持续更新,升级版本和丰富用例。
版本说明:
spring: 5.1.3.RELEASE
spring-boot:2.1.1.RELEASE
spring-cloud:Finchley.SR2
版本说明:
spring: 5.1.3.RELEASE
spring-boot:2.1.1.RELEASE
spring-cloud:Finchley.SR2
2021年12月11日