【SSM】SpringBoot学习笔记1:SpringBoot快速入门

 前言:

文章是系列学习笔记第9篇。基于黑马程序员课程完成,是笔者的学习笔记与心得总结,供自己和他人参考。笔记大部分是对黑马视频的归纳,少部分自己的理解,微量ai解释的内容(ai部分会标出)。


笔记1:【SSM】Spring学习笔记1: IoC的XML配置-CSDN博客 对应黑马课程P1~P20的内容。

笔记2:【SSM】Spring学习笔记2:注解配置bean-CSDN博客  对应黑马课程P21~P27

笔记3:【SSM】Spring学习笔记3:Spring整合MyBatis和Junit-CSDN博客 对应黑马课程P28~P30

笔记4:【SSM】Spring学习笔记4:Spring的AOP编程-CSDN博客 对应黑马课程P31~39

笔记5:【SSM】Spring学习笔记5:Spring事务-CSDN博客 对应黑马课程P40~42

笔记6:  【SSM】Spring学习笔记6:SpringMVC入门-CSDN博客 对应黑马课程P43~58

笔记7: 【SSM】SpringMVC学习笔记7:前后端数据传输协议和异常处理-CSDN博客 对应黑马课程P59~65

笔记8:【SSM】SpringMVC学习笔记8:拦截器-CSDN博客 对应黑马课程P71~74

笔记9: (此篇) 对应黑马课程P90~101


1. 快速案例

新建springboot工程(intell IDEA有集成)

新建好工程之后,直接写一个controller类

@RestController
@RequestMapping("/book")
public class BookController {@GetMapping("/{id}")public String getBook(@PathVariable int id) {return "hi spring boot";}
}

运行新建工程之后自动写好的类

无需额外配置,此时tomcat服务器已经启动,刚刚写好的controller类正确运行。

不通过ide创建spring boot项目的话,可以从spring官网创建项目,到时候会提供一个创建好项目的压缩包。

2. spring boot项目快速启动

将构建好的spring boot打包成一个jar包,发送给前端人员,前端人员就能无需配置运行环境的情况下运行构建好的spring boot程序。

注意,如果没有以下插件,打包出来的jar包无法直接运行。

3.springboot 

3.1 起步依赖

构建的springboot项目会继承自spring-boot-starter-parent项目,而spring-boot-starter-parent又会继承自spring-boot-dependencies,这两个项目是springboot官方提供的项目,用于依赖的版本控制。简单的说,这两个项目中提供了几乎所有常用依赖的适配版本的可选依赖,在我们的项目中如果需要使用某个依赖直接使用groupId和artifactId即可,无需配置版本号。这种设计减少了各个依赖之间版本冲突带来的问题。

3.2 引导类

就是创建SpringBoot项目的时候自动生成的类,这个类是程序的入口。这个类无需手动创建。

@SpringBootApplication
public class MyspringbootApplication {public static void main(String[] args) {SpringApplication.run(MyspringbootApplication.class, args);}}

4. Springboot端口配置

springboot所有配置文件都叫 application.XXX

application.properties配置

application.yml配置

注意该文件配置格式,在具体的值前面有空格。

application.yaml配置

它的格式和.yml一模一样

优先级

如果同时使用以上三种文件同时配置,优先级:

application.properties>application.yml>application.yaml

ps:

如果在配置文件中书写的时候没有任何提示,可能是以内ide没有将该文件视为工程的配置文件。需要到项目结构中设置。

5. yaml配置文件

5.1 书写格式

逐渐在市场中占主流地位

5.2 使用

方法1

方法2

使用自动装配的方式,直接将配置文件中的信息放到environment对象里面。

方法3

自定义对象封装数据。使用@Component注解将该类配置成bean,交给Spring管理。

使用@ConfigurationProperties注解指明这个类应该与配置文件中哪个信息对应。

5.3 多环境配置

.yml

# 设置启用的环境
spring:profiles:active: test---
# 开发
spring:profiles: dev
server:port: 80---
# 生产
spring:profiles: pro
server:port: 81---
# 测试
spring:profiles: test
server:port: 82

命令行运行jar包的时候指定运行环境

同理,这种格式适用于各中参数的临时覆盖,包括配置文件中的自定义参数

6. maven 和SpringBoot多环境配置兼容

要需要保证有以下插件,maven中的属性才能被配置文件读取

7. 在jar外面的配置文件

在jar包的同级目录下如果有一个application.yml配置文件,jar包运行的的时候会使用该配置文件作为配置信息。如果jar包同级目录下有config/application.yml,则config/application.yml优先级更高,将使用它作为配置信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/83803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国产高性能pSRAM选型指南:CSS6404LS-LI 64Mb QSPI伪静态存储器

一、芯片基础特性 核心参数 容量 :64Mb(8M 8bit)电压 :单电源供电 2.7-3.6V (兼容3.3V系统)接口 :Quad-SPI(QPI/SPI)同步模式封装 : SOP-8L (150mil) &#…

Cilium动手实验室: 精通之旅---4.Cilium Gateway API - Lab

Cilium动手实验室: 精通之旅---4.Cilium Gateway API - Lab 1. 环境准备2. API 网关--HTTP2.1 部署应用2.2 部署网关2.3 HTTP路径匹配2.4 HTTP头匹配 3. API网关--HTTPS3.1 创建TLS证书和私钥3.2 部署HTTPS网关3.3 HTTPS请求测试 4. API网关--TLS 路由4.1 部署应用4.2 部署网关…

20250605在微星X99主板中配置WIN10和ubuntu22.04.6双系统启动的引导设置

rootrootrootroot-X99-Turbo:~$ sudo apt-get install boot-repair rootrootrootroot-X99-Turbo:~$ sudo add-apt-repository ppa:yannubuntu/boot-repair rootrootrootroot-X99-Turbo:~$ sudo apt-get install boot-repair 20250605在微星X99主板中配置WIN10和ubuntu22.04.6双…

MyBatis之测试添加功能

1. 首先Mybatis为我们提供了一个操作数据库的会话对象叫Sqlsession,所以我们就需要先获取sqlsession对象: //加载核心配置文件 InputStream is Resources.getResourceAsStream("mybatis-config.xml"); //获取sqlSessionFactoryBuilder(是我…

[论文阅读] 人工智能+软件工程 | MemFL:给大模型装上“项目记忆”,让软件故障定位又快又准

【论文解读】MemFL:给大模型装上“项目记忆”,让软件故障定位又快又准 论文信息 arXiv:2506.03585 Improving LLM-Based Fault Localization with External Memory and Project Context Inseok Yeo, Duksan Ryu, Jongmoon Baik Subjects: Software Engi…

Java开发中复用公共SQL的方法

在一次Java后端开发的面试中,面试官问了我一个问题:“你在写代码时会复用公共SQL吗?如果会的话,能详细介绍一下你是如何实现的吗?”这个问题让我眼前一亮,因为在实际项目中,SQL复用确实是一个非…

C#学习26天:内存优化的几种方法

1.减少对象创建 使用场景: 在循环或密集计算中频繁创建对象时。涉及大量短生命周期对象的场景,比如日志记录或字符串拼接。游戏开发中,需要频繁更新对象状态时。 说明: 重用对象可以降低内存分配和垃圾回收的开销。使用对象池…

【opencv】基础知识到进阶(更新中)

安装:pip install opencv-python 入门案例 读取图片 本节我们将来学习,如何使用opencv显示一张图片出来,我们首先需要掌握一条图片读取的api cv.imread("图片路径","读取的方式") # 图片路径: 需要在工程目录中,或者一个文件的绝对路径 # 读取…

【Part 3 Unity VR眼镜端播放器开发与优化】第二节|VR眼镜端的开发适配与交互设计

文章目录 《VR 360全景视频开发》专栏Part 3|Unity VR眼镜端播放器开发与优化第一节|基于Unity的360全景视频播放实现方案第二节|VR眼镜端的开发适配与交互设计一、Unity XR开发环境与设备适配1.1 启用XR Plugin Management1.2 配置OpenXR与平…

SQL进阶之旅 Day 16:特定数据库引擎高级特性

【SQL进阶之旅 Day 16】特定数据库引擎高级特性 开篇 在“SQL进阶之旅”系列的第16天,我们将探讨特定数据库引擎的高级特性。这些特性通常为某些特定场景设计,能够显著提升查询性能或简化复杂任务。本篇文章将覆盖MySQL、PostgreSQL和Oracle的核心高级…

c++算法学习4——广度搜索bfs

一、引言:探索迷宫的智能方法 在解决迷宫最短路径问题时,广度优先搜索(BFS)是一种高效而优雅的算法。与深度优先搜索(DFS)不同,BFS采用"由近及远"的搜索策略,逐层探索所有…

4.RV1126-OPENCV 图像轮廓识别

一.图像识别API 1.图像识别作用 它常用于视觉任务、目标检测、图像分割等等。在 OPENCV 中通常使用 Canny 函数、findContours 函数、drawContours 函数结合在一起去做轮廓的形检测。 2.常用的API findContours 函数:用于寻找图片的轮廓,并把所有的数…

Qt多线程访问同一个数据库源码分享(基于Sqlite实现)

Qt多线程访问同一个数据库源码分享(基于Sqlite实现) 一、实现难点线程安全问题死锁风险连接管理问题数据一致性性能瓶颈跨线程信号槽最佳实践建议 二、源码分享三、测试1、新建一个多线程类2、开启多线程插入数据 一、实现难点 多线程环境下多个线程同时…

双空间知识蒸馏用于大语言模型

Dual-Space Knowledge Distillation for Large Language Models 发表:EMNLP 2024 机构:Beijing Key Lab of Traffic Data Analysis and Mining 连接:https://aclanthology.org/2024.emnlp-main.1010.pdf 代码:GitHub - songmz…

贪心算法应用:多重背包启发式问题详解

贪心算法应用:多重背包启发式问题详解 多重背包问题是经典的组合优化问题,也是贪心算法的重要应用场景。本文将全面深入地探讨Java中如何利用贪心算法解决多重背包问题。 多重背包问题定义 **多重背包问题(Multiple Knapsack Problem)**是背包问题的变…

ES6 Promise 状态机

状态机:抽象的计算模型,根据特定的条件或者信号切换不同的状态 一、Promise 是什么? 简单来说,Promise 就是一个“承诺对象”。在ES6 里,有些代码执行起来需要点时间,比如加载文件、等待网络请求或者设置…

【Docker管理工具】部署Docker可视化管理面板Dpanel

【Docker管理工具】部署Docker可视化管理面板Dpanel 一、Dpanel介绍1.1 DPanel 简介1.2 主要特点 二、本次实践规划2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载Dpanel镜像五、部署Dpanel…

最新研究揭示云端大语言模型防护机制的成效与缺陷

一项全面新研究揭露了主流云端大语言模型(LLM)平台安全机制存在重大漏洞与不一致性,对当前人工智能安全基础设施现状敲响警钟。该研究评估了三大领先生成式AI平台的内容过滤和提示注入防御效果,揭示了安全措施在阻止有害内容生成与…

docker中,容器时间和宿机主机时间不一致问题

win11下的docker中有个mysql。今天发现插入数据的时间不正确。后来发现原来是docker容器中的时间不正确。于是尝试了各种修改,什么run -e TZ"${tzutil /g}",TZ"Asia/Shanghai",还有初始化时带--mysqld一类的,…

uniapp实现的简约美观的星级评分组件

采用 uniapp 实现的一款简约美观的星级评分模板,提供丝滑动画效果,用户可根据自身需求进行自定义修改、扩展,纯CSS、HTML实现,支持web、H5、微信小程序(其他小程序请自行测试) 可到插件市场下载尝试&#x…