【SpringBoot3】快速启动框架 快速入门 配置文件

文章目录

  • SpringBoot3介绍
  • 一、快速入门
  • 二、入门总结
    • 1. 为什么依赖不需要写版本?
    • 2. 启动器(Starter)是什么
    • 3. @SpringBootApplication注解包括的效果?
  • 三、SpringBoot3配置文件
    • 3.1 统一配置管理概述
    • 3.2 属性配置文件使用
    • 3.3 YAML配置文件使用
    • 3.4 批量配置文件注入
    • 3.5 多环境配置和使用
  • 总结


SpringBoot3介绍

SpringBoot3 官方文档

SpringBoot底层是Spring。

约定大于配置,基本不需要主动编写配置类、也不需要 XML 配置文件。

总结:
简化开发,简化配置,简化整合,简化部署,简化监控,简化运维。

技术&工具版本(or later)
maven3.6.3 or later 3.6.3 或更高版本
Tomcat10.0+
Servlet9.0+
JDK17+

一、快速入门

  1. 创建Maven工程
  2. 添加依赖(springboot父工程依赖 , web启动器依赖)
  3. 编写启动引导类(springboot项目运行的入口)
  4. 编写处理器Controller
  5. 启动项目

创建空项目:springboot-part

创建模块 : springboot-base-quick-01

模块下的pom.xml :

  1. 添加父工程坐标
  • 添加 spring-boot-starter-parent 用于方便的管理项目依赖。
  • 里面已经对各种常用依赖的版本进行了管理
  • 项目需要以这个项目为父工程,这样我们就不用操心依赖的版本问题了
  • 需要什么依赖,直接引入坐标(不需要添加版本)即可
  1. 添加web启动器
  • 为了让Spring Boot帮我们完成各种自动配置,我们必须引入Spring Boot提供的自动配置依赖,我们称为启动器
  • 因为我们是web项目,这里我们引入web启动器 spring-boot-starter-web
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><!--所有springboot项目都必须继承自 spring-boot-starter-parent--><!-- 设置为  spring-boot  父 parent   --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version></parent><groupId>com.wake</groupId><artifactId>springboot-base-quick-01</artifactId><version>1.0-SNAPSHOT</version><dependencies>
<!--   导入对应的启动器 这是一个整合包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
</project>
  • 启动类:
@SpringBootApplication //启动类
public class Main {public static void main(String[] args) {//自动创建IOC容器,启动tomcat服务器SpringApplication.run(Main.class,args);}
}
  • controller 测试:
    • IoC和DI注解需要在启动类的同包或者子包下方可生效!
    • 无需指定,约束俗称。
@RestController
@RequestMapping("hello")
public class HelloController {@GetMapping("boot")public String hello(){return "hello springboot!!!";}
}
  • 目录
    1

  • 直接启动:
    1

  • 显示:
    1

二、入门总结

1. 为什么依赖不需要写版本?

  • 每个boot项目都有一个父项目spring-boot-starter-parent
  • parent的父项目是spring-boot-dependencies
  • 父项目,把所有常见的jar的依赖版本都声明好了。
    1

2. 启动器(Starter)是什么

  • Spring Boot提供了一种叫做Starter的概念,它是一组预定义的依赖项集合,旨在简化Spring应用程序的配置和构建过程。
  • Starter包含了一组相关的依赖项,以便在启动应用程序时自动引入所需的库、配置和功能。

主要作用如下:

1

Spring Boot提供了许多预定义的Starter,例如 :

  • spring-boot-starter-web用于构建Web应用程序,
  • spring-boot-starter-data-jpa用于使用JPA进行数据库访问,
  • spring-boot-starter-security用于安全认证和授权等等。

spring boot提供的全部启动器地址:Starter - springboot启动器 官方文档

3. @SpringBootApplication注解包括的效果?

一个组合注解,里面包含一系列的子注解。
1

  • @EnableAutoConfiguration注解
    • 用于启用Spring Boot的自动配置机制
  • @ComponentScan注解
    • 自动扫描并且加载组件

三、SpringBoot3配置文件

想要设置的任何参数(端口号、项目根路径、数据库连接信息等等)都集中到一个固定位置和命名的配置文件(application.propertiesapplication.yml)中
1

3.1 统一配置管理概述

配置文件应该放置在Spring Boot工程的src/main/resources目录下。这是因为src/main/resources目录是Spring Boot默认的类路径(classpath),配置文件会被自动加载并可供应用程序访问。
1

功能配置参数说明:springboot配置参数 - 官方文档

细节总结:

  • 集中式管理配置。统一在一个文件完成程序功能参数设置和自定义参数声明 。
  • 位置:resources文件夹下,必须命名application 后缀 .properties / .yaml / .yml
  • 如果同时存在application.properties | application.yml(.yaml) , properties的优先级更高。
  • 配置基本都有默认值。
    • 1

3.2 属性配置文件使用

在这里插入图片描述

  • application.properties
# 使用springboot提供的配置,修改程序的参数 key是固定的
server.port=80
server.servlet.context-path=/doug# 自定义配置
doug.name=道格维克
doug.nickname=KNELL
  • 测试
@RestController
@RequestMapping("hello")
public class HelloController {@Value("${doug.nickname}")private String name;@GetMapping("boot")public String hello(){System.out.println(name);return "hello springboot!!!";}
}

1
1

3.3 YAML配置文件使用

YAML(YAML Ain’t Markup Language)是一种基于层次结构的数据序列化格式

yaml语法说明:

  1. 数据结构用树形结构呈现,通过缩进来表示层级,
  2. 连续的项目(集合)通过减号 ” - ” 来表示
  3. 键值结构里面的key/value对用冒号 ” : ” 来分隔。
  4. YAML配置文件的扩展名是yaml 或 yml
# yaml | yml 有层次,可以继承配置文件格式server:port: 80servlet:context-path: /doug# 自定义 注意 key:空格 值 
#  key:后面加一个空格再写值
doug:info:name: dougwakeage: 22root:username: rootpwd: root123
#    集合的格式 - gfs:- 艾琳·艾德勒- 萨曼莎·格罗夫斯- 杰罗姆·尤金

读取方式和properties一致

3.4 批量配置文件注入

  • yml
doug:info:name: dougwakeage: 22user:username: rootpwd: root123
#    集合的格式 -gfs:- a- b- b
  • 实体类
/*** @Description:*  1. 读取配置方式一 : @Value*      直接在属性上赋值*      只能读取单个值,集合就不能读取,会报错*  2. 批量配置读取 :*      @ConfigurationProperties(prefix = "doug.user") 通用的前缀*     不用一个一个属性赋值,集合也能赋值了*/
@Data
@Component
@ConfigurationProperties(prefix = "doug.user")
public class User {private String username;private String pwd;private List<String> gfs;
}
  • controller
@RestController
@RequestMapping("hello")
public class HelloController {@Autowiredprivate User user;@GetMapping("show")public User show(){return user;}
}
  • 测试
    1

3.5 多环境配置和使用

1

  • application.yml
# 自定义 注意 key:空格 值
#  key:后面加一个空格再写值
doug:info:name: dougwakeage: 22user:username: rootpwd: root123
#    集合的格式 -gfs:- a- b- b
spring:profiles:active: test,dev # 激活外部的配置 application-test | application-dev# 外部配置的key和当前key 重复时 外部的会覆盖当前内部的# jar --active=test

1
1


总结

springboot-part - GitHub

  • spring-boot-starter-web 依赖里面包括:
    1
  • 多个yml文件 配置
    1
  • parent源码 允许文件
    1

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

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

相关文章

【Unity】读取Json的三种方法(JsonUtility,LitJson,Newtonsoft)

介绍 在Unity开发过程中&#xff0c;Json是比较常用的一种数据存储文本&#xff0c;尤其是在和第三方交互中&#xff0c;基本都是json格式。 先给出一个Json示例&#xff0c;我们来看看是如何解析的。 {"Player": [{"id": 1001,"name": "…

SSL---VPN

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.SSL-VPN概述 SLL VPN是一种基于HTTPS&#xff08;即支持SSL的HTTP协议&#xff09;的远程安全接入技术。它充分利用了SSL协议提供的基于证书的身份认证、数据加密和消息完整性验证机制&#…

23-Java空对象模式 ( Null Object Pattern )

Java空对象模式 实现范例 在空对象模式&#xff08;Null Object Pattern&#xff09;中&#xff0c;一个空对象取代 NULL 对象实例的检查Null 对象不是检查空值&#xff0c;而是反应一个不做任何动作的关系&#xff0c;这样的 Null 对象也可以在数据不可用的时候提供默认的行为…

maven运行spring boot项目

我用idea想跑一个整合flowable的spring boot项目&#xff0c;但是跑不起来&#xff0c;原因是jdk版本不够高。但是我的idea是2018版本&#xff0c;最高只能支持到jdk11。就想办法不用idea编译、打包、运行项目。因为spring boot是maven项目&#xff0c;所以可以用maven进行打包…

QT文件的读取与插入

实现功能&#xff1a; 1.输入文本到 Line_edit 点击插入&#xff0c;把文本添加到文件末端 2.点击 获取 读取txt文本&#xff0c;将文本内容显示到左边的窗口中 3.双击左边窗口的选项&#xff0c;弹出对话框&#xff0c;跳转到右边 主要介绍一下文件OI的使用 首先用QFile fil…

51单片机基础篇系列-LED灯点亮代码部分

&#x1f308;个人主页: 会编辑的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” #include<reg52.h> //包含单片机内部寄存器 void main() //&#xff08;&#xff09;{P10xfe;//1111 1110while(1); // } 上面是第一个 LED实验 #include<reg52.h>…

51单片机新建工程

文章目录 前言一、keil新建工程&#xff1f;1.新建文件夹 二、使用步骤1.引入库2.读入数据 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 课程需要&#xff1a; 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、keil新…

基于ACM32 MCU的两轮车充电桩方案介绍,有利于打造高效安全的电池管理

随着城市化进程的加快、人们生活水平的提高和节能环保理念的普及&#xff0c;越来越多的人选择了电动车作为代步工具&#xff0c;而两轮电动车的出行半径较短&#xff0c;需要频繁充电&#xff0c;因此在城市中设置两轮车充电桩就非常有必要了。城市中的充电桩不仅能解决两轮车…

【笔记版】cgroup大摸底

云端&#xff1a; subsystem实际上就是cgroups的资源控制系统。 blkio&#xff1a; 这个subsystem可以为块设备设定输入/输出限制&#xff0c;比如物理驱动设备&#xff08;包括磁盘、固态硬盘、USB等&#xff09;。cpu&#xff1a; 这个subsystem使用调度程序控制task对CPU的…

力扣大厂热门面试算法题 12-14

12. 整数转罗马数字&#xff0c;13. 罗马数字转整数&#xff0c;14. 最长公共前缀&#xff0c;每题做详细思路梳理&#xff0c;配套Python&Java双语代码&#xff0c; 2024.03.11 可通过leetcode所有测试用例。 目录 12. 整数转罗马数字 解题思路 完整代码 Java Pytho…

STM32 学习11 独立看门狗与窗口看门狗

STM32 学习11 独立看门狗与窗口看门狗 一、**看门狗概述**二、**STM32中的看门狗类型**1. 独立看门狗&#xff08;IWDG&#xff09;&#xff08;1&#xff09;基本概念&#xff08;2&#xff09;独立看门狗框图&#xff08;3&#xff09;独立看门狗配置步骤&#xff08;4&#…

十大排序算法(冒泡排序、插入排序、选择排序、希尔排序、堆排序、快排、归并排序、桶排序、计数排序、基数排序)

目录 一、冒泡排序&#xff1a; 二、插入排序&#xff1a; 三、选择排序&#xff1a; 四、希尔排序&#xff1a; 五、堆排序&#xff1a; 六、快速排序&#xff1a; 6.1挖坑法&#xff1a; 6.2左右指针法 6.3前后指针法&#xff1a; 七、归并排序&#xff1a; 八、桶…

Linux报错排查-CentOS/BigCloud_Enterprise_Linux系统yum安装kvm报错

Linux运维工具-ywtool 目录 一.系统环境二.问题描述三.问题解决四.其他命令 一.系统环境 系统版本:BigCloud_Enterprise_Linux 7.1 二.问题描述 通过yum安装kvm报错提示: /usr/bin/yum install -y qemu-kvm qemu-img libvirt libvirt-python virt-manager libvirt-client …

系统运维网络知识汇总

一、系统运维中网络方面的规划与思考 系统运维建立在网络的基础之上&#xff0c;如果没有一个相对合理的网络架构&#xff0c;恐怕系统运维做起来也不是那么的顺手。一个公司基本上都会把网络和服务器独立开来&#xff0c;划分不同的区域摆放设备&#xff0c;很多时候都是物理…

2024年家政预约上门服务小程序【用户端+商家端+师傅端】源码

024最新家政预约上门服务小程序源码 主要功能:商家入住&#xff0c;师傅入住&#xff0c;缴纳保正金 支持师傅&#xff0c;抢单派单 支持多城市多门下单&#xff0c;支持预约上门服务到店核销 支持补差价义价&#xff0c;支持区域服务限制 基于thinkphp和原生小程序开发

【五】【算法分析与设计】双指针的初见

167. 两数之和 II - 输入有序数组 给你一个下标从 1 开始的整数数组 numbers &#xff0c;该数组已按 非递减顺序排列 &#xff0c;请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index(1)] 和 numbers[index(2)] &#xff0c;则 1 &…

排序类算法

目录 一、交换类排序 1.冒泡排序 2.快速排序 二、 插入排序 1.直接插入排序 2.折半插入排序 3.希尔排序 三、选择排序 1.简单选择排序 2.堆排序 完整代码 四、归并排序 完整代码 五、汇总 六、OJ练习 1.冒泡排序&#xff1a;正确表示前一个数和后一个数 2.选…

LLM推理框架Triton Inference Server学习笔记(一): Triton Inference Server整体架构初识

官方文档查阅: TritonInferenceServer文档 1. 写在前面 这篇文章开始进行大语言模型(Large Language Model, LLM)的学习笔记整理&#xff0c;这次想从Triton Inference Server框架开始&#xff0c;因为最近工作上用到了一些大模型部署方面的知识&#xff0c; 所以就快速补充了…

【STM32】串口助手接受数据是乱码如何解决

第一步 首先判断自己使用的串口助手和工程配置的波特率是否相同&#xff0c;一般都是115200 第二步 如果不是上一条的问题&#xff0c;继续排查&#xff0c;检查时钟问题 打开工程&#xff0c;找到此文件(stm32f10x.h)的这个位置&#xff0c;如工程中未添加&#xff0c;可以从…

centos安装hadoop启动问题解决方案

1、出现了问题localhost: ERROR: JAVA_HOME is not set and could not be found. *解决方案尝试&#xff1a; 修改hadoop-env.sh&#xff08;在etc/hadoop&#xff09; sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh 将原本的JAVA_HOME 替换为绝对路径就可以了 #expo…