【Spring Boot】我的第一个Spring Boot练习
背景
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 即可看到效果:

【Spring Boot】我的第一个Spring Boot练习的更多相关文章
- Spring Boot (1) 构建第一个Spring Boot工程
Spring boot简介 spring boot是spring官方推出的一个全新框架,其设计目的是用来简化新spring应用的初始搭建以及开发过程. Spring boot特点 1.化繁为简,简化配 ...
- 从零开始的Spring Boot(1、搭建一个Spring Boot项目Hello World)
搭建一个Spring Boot项目Hello World 写在前面 从零开始的Spring Boot(2.在Spring Boot中整合Servlet.Filter.Listener的方式):http ...
- Spring框架学习-搭建第一个Spring项目
步骤一:下载Spring开发包. 官网:https://spring.io/ 下载地址:https://repo.spring.io/libs-release-local/org/ ...
- spring boot系列01--快速构建spring boot项目
最近的项目用spring boot 框架 借此学习了一下 这里做一下总结记录 非常便利的一个框架 它的优缺点我就不在这背书了 想了解的可以自行度娘谷歌 说一下要写什么吧 其实还真不是很清楚,只是想记录 ...
- 第一个Spring Boot Web程序
需要的环境和工具: 1.Eclipse2.Java环境(JDK 1.7或以上版本)3.Maven 3.0+(Eclipse已经内置了) 写个Hello Spring: 1.新建一个Maven项目,项目 ...
- 第一章 第一个spring boot程序(转载)
第一章 第一个spring boot程序 本编博客转发自:http://www.cnblogs.com/java-zhao/p/5324185.html 环境: jdk:1.8.0_73 mave ...
- 我的第一个spring boot程序(spring boot 学习笔记之二)
第一个spring boot程序 写在前面:鉴于spring注解以及springMVC的配置有大量细节和知识点,在学习理解之后,我们将直接进入spring boot的学习,在后续学习中用到注解及其他相 ...
- 研磨SpringCloud系列(一)第一个Spring Boot应用
在此之前,给大家推荐几个东西. STS,Spring官方基于eclipse做的扩展ide.Spring官方背书. 第二个,lombok,注解生成get/set,构造以及基本方法的插件,"隐藏 ...
- Sping Boot入门到实战之入门篇(二):第一个Spring Boot应用
该篇为Spring Boot入门到实战系列入门篇的第二篇.介绍创建Spring Boot应用的几种方法. Spring Boot应用可以通过如下三种方法创建: 通过 https://start.spr ...
- 搭建第一个spring boot项目
一.开发工具建议使用Spring Tool Suite 下载地址:http://spring.io/tools/sts/all/ 点击versions选择相应的版本下载,解压后直接运行即可. 二.创建 ...
随机推荐
- FineReport取消强制分页和调整宽度的设置方法
在decision里,找到管理系统-目录管理,打开相应挂载的报表,在参数设置里,添加以下内容: _bypagesize_ 字符串 false
- 解锁 Git Log 更多实用技巧
目前,在软件开发的协作中,Git 无疑是版本控制的王者. 而其中的 git log 命令,犹如一把强大的历史探寻之剑,能够帮助我们深入洞察项目的演进历程. 本篇将为大家整理解读几个实用的 git Lo ...
- 使用hub部署PaddleOCR
使用hub部署PaddleOCR 概述 目前有一些处理证件照片.资质照片的业务需求,已经尝试过 llava-llama3 与 llama3.2-vision,表现都不佳,要么不能正确 ocr 出文 ...
- kubeadm init问题
1.解析不到对应的主机 [WARNING Hostname]: hostname "k8s-master-01" could not be reached [WARNING Ho ...
- Spring Boot整合Thrift RPC
[转载] https://coder4.com/homs_online/spring-boot/sb-thrift.html Spring Boot自动配置简介 在介绍RPC之前,我们先来学习下Spr ...
- 总结几个Qt版本的冷知识
Qt4.8.7是Qt4的终结版本,是Qt4系列版本中最稳定最经典的(很多嵌入式板子还是用Qt4.8),其实该版本是和Qt5.5差不多时间发布的.参考链接 https://www.qt.io/blog/ ...
- Qt音视频开发29-Onvif云台控制
一.前言 云台控制也是onvif功能中最常用的,最常用的功能排第一的是拿到视频流地址,排第二的就是云台控制了,云台控制的含义就是对带云台的摄像机进行上下左右的移动,一般云台摄像机都是带有一个小电机,一 ...
- WorldWind源码剖析系列:漫游时四叉树瓦片类QuadTile的运行思路
用户在窗口漫游时,需要加载精细的高程和纹理数据时的处理思路:当用户漫游时直到窗口相机的视场角的1/2小于(瓦片大小*瓦片绘制距离的乘积)时,才初始化四叉树瓦片类QuadTile,或者加载本地缓存中的数 ...
- 解决git clone 速度慢的问题
解决git clone 速度慢的问题 1.原因 git clone特别慢是因为github.global.ssl.fastly.net域名被限制了. 只要找到这个域名对应的ip地址,然后在hosts文 ...
- 利用SDCC开源项目搭建C51编译平台
下载sdcc 安装sdcc 安装sublime 新建编译系统输入以下内容 { "shell_cmd": "sdcc \"${file}\" " ...