前言
回顾以前的 JavaWeb 项目,在使用 Spring 的时候,需要在 pom.xml 文件中添加依赖。但随着需求的变化、功能的增加,需要整合各种文件,相对应的,配置文件也越发繁琐,版本兼容、部署运行等问题也逐渐突出。正是这种情况下,Spring Boot 诞生了。
其实严格来说,Spring Boot 并不是什么新的框架,它是 Spring 的一套快速配置脚手架。
介绍
打开 Spring 的官网,找到 Spring Boot,可以看到它的一些特性:
- Create stand-alone Spring applications
- Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
- Provide opinionated 'starter' dependencies to simplify your build configuration
- Automatically configure Spring and 3rd party libraries whenever possible
- Provide production-ready features such as metrics, health checks, and externalized configuration
- Absolutely no code generation and no requirement for XML configuration
SpringBoot Starter
依赖项来简化构建配置;绝对没有代码生成以及对 XML 没有配置要求。
分析说明
我个人理解,以上所说的“特性”就是 Spring Boot 的优点。
web.xml
,加载 Spring-application.xml
和 SpringMVC-config.xml
,配置数据库链接文件以及开启事务,配置日志文件,配置......而使用 Spring Boot 可以快速的构建,啪的一下就搭建起来了,很快嗷。java -jar xxx.jar
一键式启动项目。SpringBoot Starter
会把所有用到的依赖都给包含进去,将其合并到一个依赖中,这样就可以一次性添加到项目的 Maven 或 Gradle 构建中,避免了开发者自己去引入依赖所带来的麻烦。例如,在 pom.xml
文件中添加一个 starter-web 依赖,点击进入该依赖后可以看到,Spring Boot 这个 starter-web 已经包含了多个依赖,包括之前在 Spring 工程中需要导入的依赖。
Spring Boot Actuator 是 Spring Boot 提供的对应用系统监控的集成功能,可以查看应用配置的详细信息,例如自动化配置信息、创建的 Spring beans 以及一些环境属性等。
搭建
既然 Spring Boot 这么好用,那么如何搭建呢?
使用引导页
Spring 官方提供了 Spring Initializr,只需要打开网页,填写相关信息、添加依赖,点击即可生成。
如果你的网络环境不佳,那么可以使用阿里云的知行动手实验室提供的网页:Java工程脚手架,这个除了中文说明,还有一些额外的配置细节,可选择的 Spring Boot 版本没有最新的稳定版(也不需要用到最新版)。
使用 IDE
这种搭建方式其实与第一种相差不大,主要是免去了解压缩导入项目的步骤。
在 IDEA 中可以通过 File --> New --> Project 来快速构建 Spring Boot 工程。如下,左侧选择 Spring Initializr
,就出现了与网页差不多的界面,Server URL
就是填写官方构建页面的 url,步骤基本一致。
如果使用的是
Eclipse IDE
,需要安装 Spring 官方提供的 Spring Tools 4 for Eclipse 插件,或者参考这篇文章。使用 MAVEN
如果是使用 Maven 来构建管理 Spring Boot 项目,那说到底,这个项目还是 Maven 项目啊,所以自然可以通过 Maven 项目来构建,但是需要自己在 pom.xml
文件添加依赖,这种麻烦方式真的没必要用。
打开项目后,首先要在
pom.xml
中的 <project>
根标签中指定父级依赖:<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
然后在 <dependencies>
依赖标签中添加各个所需依赖。当然本地先要配置 Maven。