当前位置: 首页 > news >正文

第一章 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 以前只有商业版才有此模块&#xff0c;而从Qt5.7 开始此模块在社区版本里也可以免费使用了。Data Visualization 用于数据的三维显示&#xff0c;包括三维柱状图、三维空间散点、三维曲面等。Data Visualiza…...

[保研/考研机试] KY87 鸡兔同笼 北京大学复试上机题 C++实现

描述 一个笼子里面关了鸡和兔子&#xff08;鸡有2只脚&#xff0c;兔子有4只脚&#xff0c;没有例外&#xff09;。已经知道了笼子里面脚的总数a&#xff0c;问笼子里面至少有多少只动物&#xff0c;至多有多少只动物。 输入描述&#xff1a; 每组测试数据占1行&#xff0c;…...

Jmeter快捷方式和应用图标设置

很多人在安装Jmeter,安装到本机却没有icon&#xff0c;每次使用的时候&#xff0c;每次打开应用都要找目录&#xff0c;不太方便。 【解决问题】 使用bin路径下的一个.bat文件&#xff0c;创建快捷方式。 【操作步骤】 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 密钥&#xff08;256 位&#xff09; $key random_bytes(32);// 选择一个加密模式&#…...

CBCGPRibbon 添加Edit、Combox、Hyperlink控件

编辑框、下拉框、网址按钮等是我们常用的控件&#xff0c;对应的类是 CBCGPRibbonEdit CBCGPRibbonComboBox CBCGPRibbonHyperlink 使用实例如下&#xff1a; //Edit CBCGPRibbonEdit* pEdit new CBCGPRibbonEdit(2001, 200); pEdit->SetReadOnly(TRUE); …...

漫话拥塞控制:BBR 是个单流模型

概要(便于检索主题)&#xff1a;单流&#xff0c;多流收敛&#xff0c;probe buffer 挤压带宽&#xff0c;maxbw-filter wnd。 我曾经经常说 BBR 是个单流模型&#xff0c;而不是多流收敛模型&#xff0c;也做过不少评论&#xff0c;最近在复听 IETF 的大会&#xff0c;在 IET…...

HTML详解连载(1)

HTML详解连载&#xff08;1&#xff09; HTML定义HTML 超文本标记语言标签语法注意拓展 HTML基本骨架解释VS Code 快速生成骨架&#xff1a;标签的关系父子关系&#xff08;嵌套关系&#xff09;兄弟关系&#xff08;并列关系&#xff09; 代码格式注释 标题标签标签名:h1-h6(双…...

最新版本2023UI千月影视APP源码 开源完美版前后端完美匹配 后端基于ThinkPHP框架

最新版本的2023UI千月影视APP源码是一款开源的完美版应用程序&#xff0c;具备前后端完美匹配的特点。该应用的后端开发基于ThinkPHP框架&#xff0c;这是一个广泛使用的PHP开发框架&#xff0c;具有稳定性和安全性方面的优势。 2023UI千月影视APP是一款提供电影、电视剧、综艺…...

centos7安装Docker详细步骤(无坑版教程)

一、安装前必读 在安装 Docker 之前&#xff0c;先说一下配置&#xff0c;我这里是Centos7 Linux 内核&#xff1a;官方建议 3.10 以上&#xff0c;3.8以上貌似也可。 注意&#xff1a;本文的命令使用的是 root 用户登录执行&#xff0c;不是 root 的话所有命令前面要加 sudo…...

Python入门自学进阶-Web框架——39、redis、rabbitmq、git——2

RabbitMQ的exchange&#xff0c;即交换机有不同的类型&#xff1a; 1.direct Exchange(直接交换机) 匹配路由键&#xff0c;只有完全匹配消息才会被转发 2.Fanout Excange&#xff08;扇出交换机&#xff09; 将消息发送至所有的队列 3.Topic Exchange(主题交换机) 将路由按模…...

了解IL汇编跳转语句

il代码&#xff0c; .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运行时五大数据区域详解

前言&#xff1a; java虚拟机再执行Java程序的时候把它所拥有的内存区域划分了若干个数据区域。这些区域有着不同的功能&#xff0c;各司其职。这些区域不但功能不同&#xff0c;创建、销毁时间也不同。有些区域为线程私有&#xff0c;如&#xff1a;每个线程都有自己的程序计数…...

Vuex 使用教程

Vuex 各子模块的内部结构及作用 这是vuex的内部代码结构&#xff0c;所有的子模块都是一样的 state&#xff1a;存放数据状态&#xff1b; action&#xff1a;指派 mutation &#xff1b; mutation&#xff1a;修改state里面的状态&#xff1b; getter&#xff1a;侧重于对数据…...

springboot启动you will need to add ‘org.slf4j‘ to prefer-application-packages异常解决

摘自个人印象笔记2020-09-12内容&#xff1a;[https://app.yinxiang.com/fx/6c3c7d9d-d5e5-4e5b-b2a1-33d6f29c48a7](https://app.yinxiang.com/fx/6c3c7d9d-d5e5-4e5b-b2a1-33d6f29c48a7) 启动异常&#xff1a; Caused by: java.lang.IllegalArgumentException: LoggerFactory…...

云原生核心原则和特征

云原生&#xff08;Cloud Native&#xff09;是一种软件开发和部署方法论&#xff0c;旨在充分利用云计算的优势来构建和管理应用程序。云原生应用程序是专为在云环境中设计、构建和运行的应用程序。 以下是云原生的一些核心原则和特征&#xff1a; 微服务架构&#xff1a;云…...

【ElasticSearch入门】

目录 1.ElasticSearch的简介 2.用数据库实现搜素的功能 3.ES的核心概念 3.1 NRT(Near Realtime)近实时 3.2 cluster集群&#xff0c;ES是一个分布式的系统 3.3 Node节点&#xff0c;就是集群中的一台服务器 3.4 index 索引&#xff08;索引库&#xff09; 3.5 type类型 3.6 doc…...

SQL | 注释

2-注释 2.1-单行注释 select prod_name -- 这是一条行内注释 from products; 使用两个连字符(-- ) 放在行内&#xff0c;两个连字符后的内容即为注释内容。 # 这是一条注释 select prod_name from products; 这种注释方式可能有些数据库不支持&#xff0c;所以使用前应该…...

oi知识表+NOIP提高组算法及算法思想总结

&#xfeff;算法及算法思想总结 │ By lib │ ├暴力 ├模拟 ├递归及递推:数位统计类 ├构造 ▼├排序算法 │ ├冒泡排序 │ ├选择排序 │ ├计数排序 │ ├基数排序 │ ├插入排序 │ ├归并排序 │ ├快速排序 │…...

【mysql】实现递归查询

mysql实现递归查询的方法&#xff1a;首先创建表&#xff0c;并初始化数据&#xff1b;然后向下递归&#xff0c;利用find_in_set()函数和group_concat()函数、with recursive实现递归查询。 mysql实现递归查询的方法&#xff1a; 1、创建表 DROP TABLE IF EXISTS t_areainf…...

固态硬盘(SSD)优化特辑:TRIM、预留空间与垃圾回收

固态硬盘(SSD)优化特辑:TRIM、预留空间与垃圾回收 上周帮同事排查一个诡异的问题:新装的NVMe SSD,连续写入大文件时速度曲线像过山车——开始能跑满3.5GB/s,十几秒后骤降到几百MB,停顿几秒又突然恢复。他第一反应是散热问题,加了散热片也没改善。我让他跑了个fsutil beha…...

BilibiliDown:重新定义B站视频管理的效率革命

BilibiliDown&#xff1a;重新定义B站视频管理的效率革命 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibi…...

G3000,TS3380,G2810,G2810,G3810,TS3440,IX6780,MP288,TS8380报错5B00,P07,E08,1700,5b04废墨垫清零软件,有效

下载&#xff1a;点这里下载 备用下载&#xff1a;https://pan.baidu.com/s/1WrPFvdV8sq-qI3_NgO2EvA?pwd0000 常见型号如下&#xff1a; G系列 G1000、G1100、G1200、G1400、G1500、G1800、G1900、G1010、G1110、G1120、G1410、G1420、G1411、G1510、G1520、G1810、G1820、…...

Tektronix泰克 MSO22 MSO24 示波器

泰克MSO24示波器具波形存储回放功能&#xff0c;助工程师记录分析测试波形&#xff0c;排查问题&#xff0c;优化信号。适用于复杂测试场景&#xff0c;提高测试效率&#xff0c;减少故障排查时间。 泰克MSO24混合信号示波器是一种先进的测试仪器&#xff0c;它具备了波形存储和…...

Mermaid Live Editor:3步完成专业图表创作,告别拖拽式编辑烦恼

Mermaid Live Editor&#xff1a;3步完成专业图表创作&#xff0c;告别拖拽式编辑烦恼 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/…...

深度解析:碧蓝航线Alas脚本的自动化架构与实战应用

深度解析&#xff1a;碧蓝航线Alas脚本的自动化架构与实战应用 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研&#xff0c;全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 在手游生命周…...

EDR规避技术解析:从API钩子绕过到直接系统调用实战

1. 项目概述与核心价值最近在安全研究领域&#xff0c;一个名为“EDRSilencer”的开源工具引起了我的注意。这个项目由netero1010发布在GitHub上&#xff0c;从名字就能直观地感受到它的目标&#xff1a;让EDR&#xff08;端点检测与响应&#xff09;系统“沉默”。对于从事渗透…...

CardEditor:桌游设计师的终极卡牌批量生成指南,效率提升300%

CardEditor&#xff1a;桌游设计师的终极卡牌批量生成指南&#xff0c;效率提升300% 【免费下载链接】CardEditor 一款专为桌游设计师开发的批处理数值填入卡牌生成器/A card batch generator specially developed for board game designers 项目地址: https://gitcode.com/g…...

本地化语义代码搜索实践:基于EmbeddingGemma与FAISS的Claude Code集成方案

1. 项目概述&#xff1a;本地化语义代码搜索的实践与价值 如果你和我一样&#xff0c;日常开发重度依赖 Claude Code 这类 AI 编程助手&#xff0c;那你肯定也遇到过那个经典的痛点&#xff1a;想让 AI 理解整个项目的上下文&#xff0c;就得把代码片段一股脑地塞进对话窗口&a…...

FireRed-OCR Studio应用场景:地质勘探报告图表+文字+坐标系联合解析

FireRed-OCR Studio应用场景&#xff1a;地质勘探报告图表文字坐标系联合解析 1. 引言&#xff1a;当地质勘探遇到文档数字化难题 想象一下&#xff0c;你是一位地质工程师&#xff0c;手里拿着一份几十页的勘探报告。报告里有密密麻麻的文字描述&#xff0c;有各种复杂的岩层…...