SpringBoot 01 概述
官方文档
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
简介
SpringBoot 是一个 JavaWeb 的开发框架,和 SpringMVC 类似,对比其他JavaWeb框架的好处,总体来说是简化开发,能迅速的开发 web 应用。
SpringBoot 基于 Spring 开发,其本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。
SpringBoot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。
SpringBoot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 SpringBoot 应用只需要很少的 Spring 配置。
SpringBoot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,SpringBoot 整合了所有的框架 。
主要优点
- 为所有 Spring 开发者更快的入门
- 开箱即用,提供各种默认配置来简化项目配置
- 内嵌式容器简化 Web 项目
- 没有冗余代码生成和 XML 配置的要求
创建基础项目
Spring 官方提供了非常方便的工具让我们快速构建应用
Spring Initializr:https://start.spring.io/
方式一:使用 Spring Initializr 的 Web 页面创建项目
填写项目信息
点击”Generate Project“按钮生成项目;
下载此项目
解压项目包,并用 IDEA 以 Maven 项目导入,一路下一步即可,直到项目导入完毕。
如果是第一次使用,可能速度会比较慢,包比较多,需要耐心等待一切就绪。
项目创建方式二:使用 IDEA 直接创建项目
创建一个新项目
选择 spring initalizr,可以看到默认就是去官网的快速构建工具那里实现
填写项目信息
选择初始化的组件(初学勾选 Web 即可)
填写项目路径
等待项目构建成功
项目结构分析
通过上面步骤完成了基础项目的创建。就会自动生成以下文件。
程序的主启动类
一个 application.properties 配置文件
一个 测试类
一个 pom.xml
pom.xml
<!-- 父依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<!-- web场景启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- springboot单元测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<!-- 剔除依赖 -->
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 打包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
父依赖parent
点进<parent></parent>可以看到配置了大量常用jar包的版本,这些版本跟随SpringBoot版本而变动。
这里才是真正管理SpringBoot应用里面所有依赖版本的地方,SpringBoot的版本控制中心。
这里给我们默认指定了各依赖兼容性最好的版本,以后我们导入依赖默认是不需要写版本的。
但是如果导入的包没有在依赖中管理着就需要手动配置版本了。
启动器spring-boot-starter
springboot-boot-starter-xxx:就是spring-boot的场景启动器。
比如spring-boot-starter-web,就是帮我们导入了web模块正常运行所依赖的组件。
SpringBoot将所有的功能场景都抽取出来,做成一个个的starter (启动器)。
只需要在项目中引入这些starter即可,所有相关的依赖都会导入进来。
我们要用什么功能就导入什么样的场景启动器即可。
starter也可以自定义。
编写一个http接口
- 在主程序的同级目录下,新建一个controller包,一定要在同级目录下,否则识别不到

- 在包中新建一个HelloController类

@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "Hello World";
}
}
- 从主程序SpringbootApplication启动项目,控制台输出了 Tomcat 访问的端口号

- 浏览器访问http://localhost:8080/hello,页面输出结果

项目打包
将项目打成jar包,点击 maven 的 package

如果出现错误,可以尝试配置打包时跳过项目运行测试用例
<!--
在工作中,很多情况下我们打包是不想执行测试用例的
可能是测试用例不完事,或是测试用例会影响数据库数据
跳过测试用例执
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!--跳过项目运行测试用例-->
<skipTests>true</skipTests>
</configuration>
</plugin>
如果成功,则控制台会打印如下内容

这时会在target目录下生成一个 jar 包

使用java -jar命令运行jar包,即可启动服务

服务启动后,浏览器访问http://localhost:8080/hello,页面依然输出同样的结果
配置banner
可以看到,SpringBoot默认的启动图案为

这个图案是可以更改的
到项目下的 resources 目录下新建一个banner.txt。
到https://www.bootschool.net/ascii 这个网站生成图案,拷贝到banner.txt
再次启动项目,可以看到启动时的图案变为自己设置的图案

SpringBoot 01 概述的更多相关文章
- SpringBoot 启动概述
透过现象看本质,SpringApplication 只是将一个典型的Spring应用的启动流程进行了扩展,因此,透彻理解 Spring 容器是打开 Spring Boot 大门的一把钥匙. Sprin ...
- 01 - 概述 VTK 6.0 迁移
摘要 对vtk版本4和5的管道机制重新架架构的主要目的是:迁移数据对象和算法对象中的管道执行逻辑到一个新集合的类中,我们称这个集合类叫executives.分离数据和执行模型的代码后,可以双双简化修改 ...
- Redis数据库 01概述| 五大数据类型
1.NoSQL数据库简介 解决应用服务器的CPU和内存压力:解决数据库服务的IO压力: ----->>> ① session存在缓存数据库(完全在内存里),速度快且数据结构简单: 打 ...
- Hive 01 概述、安装配置
概述 数据仓库:是一个面向主题的.集成的.不可更新的.随时间不变化的数据集合,它用于支持企业或组织的决策分析处理. 数据仓库的结构和建立过程: 数据源 数据存储及管理 ETL Extract 提取 T ...
- 【OracleDB】 01 概述和基本操作
实例概念: Oracle有一个特殊的概念 Oracle数据库 = 数据库 + Oracle文件系统 + Oracle实例 实例处理Oracle的请求,调用文件系统 然后返回结果响应给客户端 单实例和多 ...
- SpringBoot 01: JavaConfig + @ImportResource + @PropertyResource
springboot的前置知识:通过注解创建对象和读取配置文件 1. JavaConfig 设计思想 使用java类作为xml配置文件的替代,是配置spring容器的纯java的方式 可以创建java ...
- Headfirst JSP 01 (概述)
HTTP 协议 http 是tcp/ip上层协议, 如果你对这些网络协议还不是太熟悉, 下面提供一个非常简单的解释, tcp负责确保从一个网络节点向另一个网络节点发送文件能作为一个完整的文件到达目的地 ...
- Python学习笔记 :01概述
Python基础 首先推荐学习Python基础的教程和书籍 视频教程推荐南京大学张莉老师在cousera上的教程用Python玩转数据 入门教程<Python基础教程> 数据挖掘教程< ...
- 重学C语言---01概述
1.什么是C语言 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.计算机语言是从第二次世界大战以后,经历了戏剧性的发展过程.从机器语言到汇编语言和高级语言.C语言是与硬件 ...
随机推荐
- 钉钉登录二维码嵌套在vue页面中
转自 https://www.csdn.net/tags/OtDacg3sMjQ2NTgtYmxvZwO0O0OO0O0O.html 钉钉登录二维码嵌套在vue页面中 2021-09-04 14:42 ...
- 图文详解MapReduce工作机制
job提交阶段 1.准备好待处理文本. 2.客户端submit()前,获取待处理数据的信息,然后根据参数配置,形成一个任务分配的规划. 3.客户端向Yarn请求创建MrAppMaster并提交切片等相 ...
- 使用pip安装库或执行pip命令时报错解决方案
初次安装pip后执行安装升级一般不会有问题,但是国外的镜像源下载升级由于网速过慢会进行报错,提示需要升级 pip 或者下载速度很慢最后直接报了错如下图: 这个时候只需要修改镜像源即可,建议修改为永久镜 ...
- 优先队列STL
引入 优先队列是一种特殊的队列,它的功能是--自动排序. 基本操作: q.size(); //返回q里元素个数 q.empty(); //返回q是否为空,空则返回1,否则返回0 q.push(k); ...
- 开发工具-在线计算MD5
更新记录: 2022年6月8日 更新标题. 2022年6月1日 开始. 都记在这以后就不用到处找了. 在线计算MD5 https://www.sojson.com/md5/ http://www.ip ...
- 七牛云创建存储空间并绑定自定义域名-https协议
七牛云创建存储空间并绑定自定义域名-https协议 一.准备 0.绑定自定义域名的前提:你起码拥有过一个备案过的域名[一级域名] 1.在七牛云创建一个存储空间 2.存储空间绑定自定义域名(cdn加速) ...
- 记录一个奇葩 bug [Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)]
关于 flask 的一个记录 代码 @auth.login_required @app.route('/add', methods=['POST']) def add(): if request.me ...
- SAP setting and releasing locks
REPORT demo_transaction_enqueue MESSAGE-ID sabapdocu. TABLES sflight. DATA text(8) TYPE c. DATA ok_c ...
- Prometheus安装教程
Prometheus安装教程 欢迎关注H寻梦人公众号 参考目录 docker安装Prometheus 基于docker 搭建Prometheus+Grafana prometheus官方文档 dock ...
- 5-16 Docker 容器 || Linux
Docker 简介 Linux简介 Linux和windows一样,都是操作系统 只不过windows更易用,适合家庭和非编程人员使用 如果用作服务器,尤其是java项目的服务器,Linux会更加合适 ...