我们刚开始学习 JavaWeb 的时候,使用 Servlet/JSP 做开发,一个接口搞一个 Servlet ,很头大,后来我们通过隐藏域或者反射等方式,可以减少 Servlet 的创建,但是依然不方便,再后来,我们引入 Struts2/SpringMVC 这一类的框架,来简化我们的开发 ,和 Servlet/JSP 相比,引入框架之后,生产力确实提高了不少,但是用久了,又发现了新的问题,即配置繁琐易出错,要做一个新项目,先搭建环境,环境搭建来搭建去,就是那几行配置,不同的项目,可能就是包不同,其他大部分的配置都是一样的,Java 总是被人诟病配置繁琐代码量巨大,这就是其中一个表现。那么怎么办?Spring Boot 应运而生,Spring Boot 主要提供了如下功能:
-
为所有基于 Spring 的 Java 开发提供方便快捷的入门体验。
-
开箱即用,有自己自定义的配置就是用自己的,没有就使用官方提供的默认的。
-
提供了一系列通用的非功能性的功能,例如嵌入式服务器、安全管理、健康检测等。
-
绝对没有代码生成,也不需要 XML 配置。
Spring Boot 的出现让 Java 开发又回归简单,因为确确实实解决了开发中的痛点,因此这个技术得到了非常广泛的使用,我很多朋友出去面试 Java 工程师,从 2017 年年初开始,Spring Boot 基本就是必问,现在流行的 Spring Cloud 微服务也是基于 Spring Boot,因此,所有的 Java 工程师都有必要掌握好 Spring Boot。
内容简介:
1.纯 Java 搭建 SSM 项目
在 Spring Boot 项目中,正常来说是不存在 XML 配置,这是因为 Spring Boot 不推荐使用 XML ,注意,并非不支持,Spring Boot 推荐开发者使用 Java 配置来搭建框架,Spring Boot 中,大量的自动化配置都是通过 Java 配置来实现的,这一套实现方案,我们也可以自己做,即自己也可以使用纯 Java 来搭建一个 SSM 环境,即在项目中,不存在任何 XML 配置,包括 web.xml 。
2.创建一个 spring boot 项目的三种方式
初学者看到 Spring Boot 工程创建成功后有那么多文件就会有点懵圈,其实 Spring Boot 工程本质上就是一个 Maven 工程,从这个角度出发,松哥在这里向大家介绍三种项目创建方式。
-
在线创建
-
使用开发工具创建
-
Maven 创建
3.理解 Spring Boot 项目中的 parent
基本功能
当我们创建一个 Spring Boot 工程时,可以继承自一个 spring-boot-starter-parent ,也可以不继承自它,我们先来看第一种情况。先来看 parent 的基本功能有哪些?
-
定义了 Java 编译版本为 1.8 。
-
使用 UTF-8 格式编码。
-
继承自 spring-boot-dependencies ,这个里边定义了依赖的版本,也正是因为继承了这个依赖,所以我们在写依赖时才不需要写版本号。
-
执行打包操作的配置。
-
自动化的资源过滤。
-
自动化的插件配置。
-
针对 application.properties 和 application.yml 的资源过滤,包括通过 profifile 定义的不同环境的配置文件,例如 application-dev.properties 和 application-dev.yml。
请注意,由于 application.properties 和 application.yml 文件接受 Spring 样式占位符 $ {...} ,因此 Maven 过滤更改为使用 @ .. @ 占位符,当然开发者可以通过设置名为 resource.delimiter 的 Maven 属性来覆盖 @ .. @ 占位符。
源码分析
当我们创建一个 Spring Boot 项目后,我们可以在本地 Maven 仓库中看到看到这个具体的 parent 文件,以 2.1.8 这个版本为例,松哥 这里的路径是 C:\Users\sang\.m2\repository\org\springframework\boot\spring-boot-starterparent\2.1.8.RELEASE\spring-boot-starter-parent-2.1.8.RELEASE.pom ,打开这个文件,快速阅读文件源码,基本上就可以证实我们前面说的功能,如下图
4.理解 Spring Boot 配置文件 application.properties
位置问题
首先,当我们创建一个 Spring Boot 工程时,默认 resources 目录下就有一个 application.properties 文件,可以在 application.properties 文件中进行项目配置,但是这个文件并非唯一的配置文件,在 Spring Boot 中,一共有 4 个地方可以存放 application.properties 文件。
-
当前项目根目录下的 confifig 目录下
-
当前项目的根目录下
-
resources 目录下的 confifig 目录下
-
resources 目录下
按如上顺序,四个配置文件的优先级依次降低。如下:
5.Spring Boot 中的 yaml 配置
6.自定义 Spring Boot 中的 starter
7.理解自动化配置的原理
8.Spring Boot 中配置 Https
9.Spring Boot 整合 Thymeleaf
10.Spring Boot 整合 Freemarker
11.Spring Boot 中的静态资源配置
12.@ControllerAdvice 的三种使用场景
13.Spring Boot 中的全局异常处理
14.CORS 解决跨域问题
15.定义系统启动任务的两种方式
16.定时任务的两种实现方式
关注公众号【编程程序V】,分享更多Java技术前沿文章,Java学习面试资源。
总结:
可以毫不夸张地说,这篇文章介绍的 SpringBoot 教程基本已经涵盖你工作中遇到的大部分常用的场景。对于每一个 springboot 的用法,文中都会都会有详细的教程解释。
本文总共从 29 个章节,248 页 PDF,阐述 springboot 在各种环境下的各种用法,文中给大家列举出部分的 springboot 教程,需要这份 10 万字节 springboot 全教程 PDF 的朋友,关注文中公众号即可领取完整版资料。