背景
Spring 在 Java 生态的企业级开发项目中极其常用,通常我们为项目引入一项新技术时,不得不考虑如何将新技术与 Spring 整合在一起。
我们知道,预研一项新技术,我们基于 MVP(最简化可实行产品)原则,有助于使我们聚焦在新技术本身,也可以避免其他问题的干扰。
所以,我们经常需要搭建一个最简单的 Spring Boot 的练习,本文做个简单的记录。
要提前准备什么?
- 基础的 Java 知识
- 好用的 IDE(集成开发环境),本文使用 IDEA
- JDK(Java 开发工具),本文使用 JDK8
搭建步骤
在 spring initializr 的网站生成 Spring Boot 的脚手架,本文加入了 “Web 模块”,使用的具体配置如下:
点击 GENERATE 就能生成脚手架的代码并下载下来,然后我们解压代码,并把代码引入IDEA。
为了提供Web服务用于测试,我们添加一个Controller,下文的Controller的意图是添加一个“心跳接口”,如果“心跳接口”返回“SUCCESS”,表示应用的接口服务正常:
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HeartBeatController {
@GetMapping("/heartBeat")
public String hello() {
return "SUCCESS";
}
}
然后,我们运行 com.example.demo.DemoApplication#main
方法即可启动项目:
启动,及阅读启动日志
如无意外,启动后会看到如下日志(日志为了方便查看,做了部分内容删减):
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.5.5)
com.example.demo.DemoApplication : Starting DemoApplication using Java 1.8.0_191 on USER-20200704PZ with PID 816 (D:\workspace\demo\target\classes started by Administrator in D:\workspace\demo)
com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default
o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
o.apache.catalina.core.StandardService : Starting service [Tomcat]
org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.53]
o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1861 ms
o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
com.example.demo.DemoApplication : Started DemoApplication in 3.272 seconds (JVM running for 4.028)
o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
通过阅读启动日志,我们可以知道最简单的 Spring Boot 相应的启动过程:
- 打印 Banner 文字图案,当然,这个文字图案是可配置的,请自行查询
- 打印什么用户在什么机器在哪个进程号使用什么版本的JDK启动服务
- 打印使用的 Profile,本文是
default
- 打印启动服务器所使用的服务端口,本文是
8080
- 启动服务
- 启动 Servlet 引擎,本文是
Apache Tomcat/9.0.53
- 初始化
WebApplicationContext
- Web服务器启动完成,打印使用的协议、端口、上下文路径,本文分别是:
http
、8080
、空上下文路径 - 打印启动应用所耗费的时间及JVM运行的时间
- 打印初始化
Spring DispatcherServlet
的过程
最后,我们使用浏览器访问 http://127.0.0.1:8080/heartBeat 即可看到效果: