第一章 SpringBoot 介绍-最小配置
1. spring-boot web应用的最小配置
1.1 pom配置两个依赖
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
1.2 新建一个启动类
@SpringBootApplication
public class MainApplication {public static void main(String[] args) {SpringApplication.run(MainApplication.class,args);}
}
1.3 新建一个controller
@RestController
public class HelloController {@RequestMapping("/hello")public String handle01(){return "Hello, Spring Boot 2!";}
}
1.4 请求地址:localhost:8080/hello
1.5 扩展
1、maven命令:mvn install,会将项目打包成原始的jar,不能直接启动
2、如果需要将带main方法的maven项目打包成可运行的jar包,需要pom引入组件<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
3、项目根目录下打包命令 mvn install
4、运行命令 java -jar target/springbootinitial-1.0-SNAPSHOT.jar5、注意:如果当前项目配置了spring-boot-starter-parent,在这个parent包里面配置了对应的goal配置
只需要简单配置如上即可,如果没有配置spring-boot-starter-parent,那么还需要如下配置:
(If you are using spring-boot-starter-parent, such execution is already pre-configured
with a repackage execution ID so that only the plugin definition should be added.)
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins>
</build>
2. 两个优点
2.1 依赖管理
<!--父项目做版本管理-->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version></parent><!--他的父项目 声明了开发中常用的依赖(jar)的版本号 自动版本仲裁机制-->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.3.4.RELEASE</version>
</parent>
- spring-boot starter场景启动器
场景启动器,只要引用了一个场景启动器,这个场景的所有依赖都被引入。
1、spring-boot-starter-* : spring官方提供启动器
2、只要引入starter,这个场景的所有常规需要的依赖我们都自动引入
3、SpringBoot所有场景的支持:
https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-systems.starters
4、*-spring-boot-starter:第三方提供的启动器
5、所有场景启动器最底层的依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.3.4.RELEASE</version><scope>compile</scope></dependency>
- 无需关注版本号,自动版本仲裁
1、引入依赖默认都可以不写版本
2、引入非版本仲裁的jar(没有在spring-boot-dependencies里面定义)需要申明版本
- 可以修改版本号
1、查看spring-boot-dependencies里面规定当前依赖的版本用的key(mysql.version)
2、在当前项目里面重写配置
<properties><mysql.version>5.1.43</mysql.version>
</properties>
2.2 自动配置
- 自动配好Tomcat
-
- 引入Tomcat依赖
- 配置Tomcat
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><version>2.3.4.RELEASE</version><scope>compile</scope></dependency>
- 自动配好SpringMVC
-
- 引入SpringMVC全套组件
- 自动配好SpringMVC常用组件(功能)
- 自动配好Web常用功能,如:字符编码问题
-
- SpringBoot帮我们配置好了所有web开发的常用场景
- 默认的包结构
-
- 主程序所在包及其所有子包里面的组件都会被默认扫面进来
- 无需以前的包扫描配置
- 想要改变扫描路径,@SpringBootApplication(scanBasePackages="com.koral")
-
-
- 或者@ComponentScan指定扫描路径
-
@SpringBootApplication
等同于
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
- 各种配置拥有默认值
-
- 默认配置最终都是映射到MultipartProperties
- 配置文件的值最终会绑定到每个类上,这个类会在容器中创建对象
- 按需加载所有自动配置项
-
- 非常多的starter
- 引入了哪些场景这个场景的自动配置才会开启
- SpringBoot的所有自动配置功能都在spring-boot-autoconfigure里面
相关文章:
第一章 SpringBoot 介绍-最小配置
1. spring-boot web应用的最小配置 1.1 pom配置两个依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version></parent><depende…...
10-1_Qt 5.9 C++开发指南_Data Visualization实现数据三维显示
Data Visualization 是 Qt 提供的用于数据三维显示的模块。在 Qt 5.7 以前只有商业版才有此模块,而从Qt5.7 开始此模块在社区版本里也可以免费使用了。Data Visualization 用于数据的三维显示,包括三维柱状图、三维空间散点、三维曲面等。Data Visualiza…...
[保研/考研机试] KY87 鸡兔同笼 北京大学复试上机题 C++实现
描述 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。 输入描述: 每组测试数据占1行,…...
Jmeter快捷方式和应用图标设置
很多人在安装Jmeter,安装到本机却没有icon,每次使用的时候,每次打开应用都要找目录,不太方便。 【解决问题】 使用bin路径下的一个.bat文件,创建快捷方式。 【操作步骤】 Step1、将Jmeter 安装bin路径下的jmeter.bat 发送快捷方…...
PHP sm4国密加密解密文件
<?php // 打开要加密的 PDF 文件 $sourceFilePath path/to/source.pdf; $encryptedFilePath path/to/encrypted.pdf; $decryptedFilePath path/to/decrypted.pdf;// 生成一个 AES 密钥(256 位) $key random_bytes(32);// 选择一个加密模式&#…...
CBCGPRibbon 添加Edit、Combox、Hyperlink控件
编辑框、下拉框、网址按钮等是我们常用的控件,对应的类是 CBCGPRibbonEdit CBCGPRibbonComboBox CBCGPRibbonHyperlink 使用实例如下: //Edit CBCGPRibbonEdit* pEdit new CBCGPRibbonEdit(2001, 200); pEdit->SetReadOnly(TRUE); …...
漫话拥塞控制:BBR 是个单流模型
概要(便于检索主题):单流,多流收敛,probe buffer 挤压带宽,maxbw-filter wnd。 我曾经经常说 BBR 是个单流模型,而不是多流收敛模型,也做过不少评论,最近在复听 IETF 的大会,在 IET…...
HTML详解连载(1)
HTML详解连载(1) HTML定义HTML 超文本标记语言标签语法注意拓展 HTML基本骨架解释VS Code 快速生成骨架:标签的关系父子关系(嵌套关系)兄弟关系(并列关系) 代码格式注释 标题标签标签名:h1-h6(双…...
最新版本2023UI千月影视APP源码 开源完美版前后端完美匹配 后端基于ThinkPHP框架
最新版本的2023UI千月影视APP源码是一款开源的完美版应用程序,具备前后端完美匹配的特点。该应用的后端开发基于ThinkPHP框架,这是一个广泛使用的PHP开发框架,具有稳定性和安全性方面的优势。 2023UI千月影视APP是一款提供电影、电视剧、综艺…...
centos7安装Docker详细步骤(无坑版教程)
一、安装前必读 在安装 Docker 之前,先说一下配置,我这里是Centos7 Linux 内核:官方建议 3.10 以上,3.8以上貌似也可。 注意:本文的命令使用的是 root 用户登录执行,不是 root 的话所有命令前面要加 sudo…...
Python入门自学进阶-Web框架——39、redis、rabbitmq、git——2
RabbitMQ的exchange,即交换机有不同的类型: 1.direct Exchange(直接交换机) 匹配路由键,只有完全匹配消息才会被转发 2.Fanout Excange(扇出交换机) 将消息发送至所有的队列 3.Topic Exchange(主题交换机) 将路由按模…...
了解IL汇编跳转语句
il代码, .assembly extern mscorlib {}.assembly Test{.ver 1:0:1:0}.module test.exe.method static void main() cil managed{.maxstack 5.entrypointldstr "Enter First Number"call void [mscorlib]System.Console::WriteLine (string)call string …...
JVM运行时五大数据区域详解
前言: java虚拟机再执行Java程序的时候把它所拥有的内存区域划分了若干个数据区域。这些区域有着不同的功能,各司其职。这些区域不但功能不同,创建、销毁时间也不同。有些区域为线程私有,如:每个线程都有自己的程序计数…...
Vuex 使用教程
Vuex 各子模块的内部结构及作用 这是vuex的内部代码结构,所有的子模块都是一样的 state:存放数据状态; action:指派 mutation ; mutation:修改state里面的状态; getter:侧重于对数据…...
springboot启动you will need to add ‘org.slf4j‘ to prefer-application-packages异常解决
摘自个人印象笔记2020-09-12内容:[https://app.yinxiang.com/fx/6c3c7d9d-d5e5-4e5b-b2a1-33d6f29c48a7](https://app.yinxiang.com/fx/6c3c7d9d-d5e5-4e5b-b2a1-33d6f29c48a7) 启动异常: Caused by: java.lang.IllegalArgumentException: LoggerFactory…...
云原生核心原则和特征
云原生(Cloud Native)是一种软件开发和部署方法论,旨在充分利用云计算的优势来构建和管理应用程序。云原生应用程序是专为在云环境中设计、构建和运行的应用程序。 以下是云原生的一些核心原则和特征: 微服务架构:云…...
【ElasticSearch入门】
目录 1.ElasticSearch的简介 2.用数据库实现搜素的功能 3.ES的核心概念 3.1 NRT(Near Realtime)近实时 3.2 cluster集群,ES是一个分布式的系统 3.3 Node节点,就是集群中的一台服务器 3.4 index 索引(索引库) 3.5 type类型 3.6 doc…...
SQL | 注释
2-注释 2.1-单行注释 select prod_name -- 这是一条行内注释 from products; 使用两个连字符(-- ) 放在行内,两个连字符后的内容即为注释内容。 # 这是一条注释 select prod_name from products; 这种注释方式可能有些数据库不支持,所以使用前应该…...
oi知识表+NOIP提高组算法及算法思想总结
算法及算法思想总结 │ By lib │ ├暴力 ├模拟 ├递归及递推:数位统计类 ├构造 ▼├排序算法 │ ├冒泡排序 │ ├选择排序 │ ├计数排序 │ ├基数排序 │ ├插入排序 │ ├归并排序 │ ├快速排序 │…...
【mysql】实现递归查询
mysql实现递归查询的方法:首先创建表,并初始化数据;然后向下递归,利用find_in_set()函数和group_concat()函数、with recursive实现递归查询。 mysql实现递归查询的方法: 1、创建表 DROP TABLE IF EXISTS t_areainf…...
固态硬盘(SSD)优化特辑:TRIM、预留空间与垃圾回收
固态硬盘(SSD)优化特辑:TRIM、预留空间与垃圾回收 上周帮同事排查一个诡异的问题:新装的NVMe SSD,连续写入大文件时速度曲线像过山车——开始能跑满3.5GB/s,十几秒后骤降到几百MB,停顿几秒又突然恢复。他第一反应是散热问题,加了散热片也没改善。我让他跑了个fsutil beha…...
BilibiliDown:重新定义B站视频管理的效率革命
BilibiliDown:重新定义B站视频管理的效率革命 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibi…...
G3000,TS3380,G2810,G2810,G3810,TS3440,IX6780,MP288,TS8380报错5B00,P07,E08,1700,5b04废墨垫清零软件,有效
下载:点这里下载 备用下载:https://pan.baidu.com/s/1WrPFvdV8sq-qI3_NgO2EvA?pwd0000 常见型号如下: G系列 G1000、G1100、G1200、G1400、G1500、G1800、G1900、G1010、G1110、G1120、G1410、G1420、G1411、G1510、G1520、G1810、G1820、…...
Tektronix泰克 MSO22 MSO24 示波器
泰克MSO24示波器具波形存储回放功能,助工程师记录分析测试波形,排查问题,优化信号。适用于复杂测试场景,提高测试效率,减少故障排查时间。 泰克MSO24混合信号示波器是一种先进的测试仪器,它具备了波形存储和…...
Mermaid Live Editor:3步完成专业图表创作,告别拖拽式编辑烦恼
Mermaid Live Editor:3步完成专业图表创作,告别拖拽式编辑烦恼 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/…...
深度解析:碧蓝航线Alas脚本的自动化架构与实战应用
深度解析:碧蓝航线Alas脚本的自动化架构与实战应用 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 在手游生命周…...
EDR规避技术解析:从API钩子绕过到直接系统调用实战
1. 项目概述与核心价值最近在安全研究领域,一个名为“EDRSilencer”的开源工具引起了我的注意。这个项目由netero1010发布在GitHub上,从名字就能直观地感受到它的目标:让EDR(端点检测与响应)系统“沉默”。对于从事渗透…...
CardEditor:桌游设计师的终极卡牌批量生成指南,效率提升300%
CardEditor:桌游设计师的终极卡牌批量生成指南,效率提升300% 【免费下载链接】CardEditor 一款专为桌游设计师开发的批处理数值填入卡牌生成器/A card batch generator specially developed for board game designers 项目地址: https://gitcode.com/g…...
本地化语义代码搜索实践:基于EmbeddingGemma与FAISS的Claude Code集成方案
1. 项目概述:本地化语义代码搜索的实践与价值 如果你和我一样,日常开发重度依赖 Claude Code 这类 AI 编程助手,那你肯定也遇到过那个经典的痛点:想让 AI 理解整个项目的上下文,就得把代码片段一股脑地塞进对话窗口&a…...
FireRed-OCR Studio应用场景:地质勘探报告图表+文字+坐标系联合解析
FireRed-OCR Studio应用场景:地质勘探报告图表文字坐标系联合解析 1. 引言:当地质勘探遇到文档数字化难题 想象一下,你是一位地质工程师,手里拿着一份几十页的勘探报告。报告里有密密麻麻的文字描述,有各种复杂的岩层…...
