【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: 80
  servlet:
    context-path: /doug

# 自定义 注意 key:空格 值 
#  key:后面加一个空格再写值
doug:
  info:
    name: dougwake
    age: 22
  root:
    username: root
    pwd: root123
#    集合的格式 - 
  gfs:
    - 艾琳·艾德勒
    - 萨曼莎·格罗夫斯
    - 杰罗姆·尤金

读取方式和properties一致

3.4 批量配置文件注入

  • yml
doug:
  info:
    name: dougwake
    age: 22
  user:
    username: root
    pwd: 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 {
    @Autowired
    private User user;

    @GetMapping("show")
    public User show(){
        return user;
    }
}
  • 测试
    1

3.5 多环境配置和使用

1

  • application.yml
# 自定义 注意 key:空格 值
#  key:后面加一个空格再写值
doug:
  info:
    name: dougwake
    age: 22
  user:
    username: root
    pwd: 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源】SpringBoot框架开发新能源电池回收系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户档案模块2.2 电池品类模块2.3 回收机构模块2.4 电池订单模块2.5 客服咨询模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 E-R 图设计 四、系统展示五、核心代码5.1 增改电池类型5.2 查询电池品类5.3 查询电池回…

大语言模型系列-提示工程

文章目录 前言一、Prompt Learning二、上下文学习&#xff08;In-Context Learning&#xff09;三、指示学习&#xff08;Instruction Learning&#xff09;四、思维链&#xff08;Chain-of-Thought&#xff09;总结 前言 前文提到自BERT以来&#xff0c;LLM的训练范式变为预训…

C#-WPF 入门

WPF 应用 使用 Visual Studio 创建新应用教程 - WPF .NET | Microsoft Learn Windows Presentation Foundation (WPF) &#xff0c;这是一个与分辨率无关的 UI 框架&#xff0c;使用基于矢量的呈现引擎&#xff0c;构建用于利用现代图形硬件。 WPF 提供一套完善的应用程序开发…

软考68-上午题-【面向对象技术2-UML】-事物

一、事物 UML中有4种事物&#xff1a; 结构事物&#xff1b;&#xff08;模型的静态部分&#xff09;行为事物&#xff1b;&#xff08;模型的动态部分&#xff09;分组事物&#xff1b;注释事物。 1-1、结构事物 静态图&#xff1a;类图、对象图、用例图 1-2、行为事物 动态…

【CSS面试题】外边距折叠的原因和解决

参考文章 什么时候出现外边距塌陷 外边距塌陷&#xff0c;也叫外边距折叠&#xff0c;在普通文档流中&#xff0c;在垂直方向上的2个或多个相邻的块级元素&#xff08;父子或者兄弟&#xff09;外边距合并成一个外边距的现象&#xff0c;不过只有上下外边距才会有塌陷&#x…

抖音开放平台第三方开发,实现代小程序备案申请

大家好&#xff0c;我是小悟 抖音小程序备案整体流程总共分为五个环节&#xff1a;备案信息填写、平台初审、工信部短信核验、通管局审核和备案成功。 服务商可以代小程序发起备案申请。在申请小程序备案之前&#xff0c;需要确保小程序基本信息已填写完成、小程序至少存在一个…

C++程序设计-练手题集合【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下C程序设计中的练手题&#xff0c;以供大家期末复习和考研复习的时候使用。 C程序设计系列文章传送门&#xff1a; 第一章 面向对象基础 第四/五章 函数和类和对象 第六/七/八章 运算符重载/包含与继承/虚函数…

基于Springboot的高校竞赛管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的高校竞赛管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

lucky-canvas实现老虎机、九宫格和大转盘抽奖

lucky-canvas是一款开源免费的基于 jscanvas 的前端插件&#xff0c;UI精美&#xff0c;功能强大&#xff0c;使用起来比较方便。 lucky-canvas官网https://100px.net/ 一、使用 注意&#xff1a;下例是vue中的应用&#xff0c;具体还有js和uniapp中的应用&#xff0c;详细查…

面向对象(精髓)变继承关系为组和关系(_Decorator模式)

在软件开发中&#xff0c;设计模式是解决常见问题的可重用解决方案。在面向对象编程中&#xff0c;继承和组合是两种常用的代码复用方式。然而&#xff0c;随着软件需求的不断变化&#xff0c;我们需要更灵活的设计方式来应对不断变化的需求。在本文中&#xff0c;我们将讨论从…

手机和电脑同步的好用记事本软件有哪些

我常常需要随手记录各种信息&#xff0c;以便随时查阅和使用。比如&#xff0c;在下班路上&#xff0c;我会用手机记录明天要处理的工作事项、购物清单&#xff0c;或是某个突然迸发的创意想法&#xff1b;而在办公室&#xff0c;我则需要在电脑上整理会议纪要、项目计划&#…

2024年华为HCIA-DATACOM新增题库(H12-811)

801、[单选题]178/832、在系统视图下键入什么命令可以切换到用户视图? A quit B souter C system-view D user-view 试题答案&#xff1a;A 试题解析&#xff1a;在系统视图下键入quit命令退出到用户视图。因此答案选A。 802、[单选题]“网络管理员在三层交换机上创建了V…

(黑马出品_07)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

&#xff08;黑马出品_07&#xff09;SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术分布式搜索 今日目标1.数据聚合1.1.聚合的种类1.2.DSL实现聚合1.2.1.Bucket聚合语法1.2.2.聚合结果排序1.2.3.限定聚合范围1.2.4.Metric聚合语法1.2.5.小…

基于物联网的智能辅助泊车系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 物联网技术 3 1.2 JFinal框架技术 3 1.3 uni-app技术 4 1.4 本章小结 4 2 智能辅助泊车系统的分析 5 2.1 需求分析 5 2. 1&#xff0e;1 系统的功能需求 5 2. 1&#xff0e;2 系统的非功能需求 5 2. 1&#xff0e;3 系统业…

Axios中每次发送post请求前都会发送options请求

今天写前端的时候&#xff0c;发现每次post请求都会失败&#xff0c; 反复调试过后发现axios在每次发送post请求前都发送了options请求&#xff0c; 在网络搜罗了一大圈&#xff0c; 发现了原因是因为web页面发送了请求给vue后&#xff0c; vue再请求后端过程中发生了跨域&…

Covalent(CQT)降低数据可用性成本,加快 Layer2 在 Web3 领域的扩张

Covalent Network&#xff08;CQT&#xff09;通过其统一 API&#xff0c;正在为 EVM Layer2 生态系统提供支持&#xff0c;减少了开发者需要导航多个数据供应商的需求&#xff0c;通过解决多链环境中的碎片化挑战&#xff0c;极大地提高了他们的效率。 通过其统一 API 支持 2…

pandas plot函数:数据可视化的快捷通道

一般来说&#xff0c;我们先用pandas分析数据&#xff0c;然后用matplotlib之类的可视化库来显示分析结果。而pandas库中有一个强大的工具--plot函数&#xff0c;可以使数据可视化变得简单而高效。 1. plot 函数简介 plot函数是pandas中用于数据可视化的一个重要工具&#xff0…

Tomcat Web 开发项目构建教程

1下载Tomcat安装包&#xff0c;下载链接&#xff1a;Apache Tomcat - Welcome!&#xff0c;我电脑环境为JDK8,所以下载Tomcat9.0 2、下载完压缩包后&#xff0c;解压到指定位置 3.在intelij中新建一个项目 4.选中创建的项目&#xff0c;双击shift&#xff0c;输入add frame...然…

安卓studio安装(从安装到配置到helloworld)

安卓studio安装 2024.3.11官网的版本&#xff08;有些翻墙步骤下载东西也解决了&#xff09; 这次写的略有草率&#xff0c;后面会更新布局的&#xff0c;因为截图量太大了&#xff0c;有需要的小伙伴可以试着接受一下哈哈哈哈 !(https://gitee.com/jiuzheyangbawjf/img/raw/ma…

报名开启丨掘金海外,探寻泛娱乐社交APP出海新风口

随着国内泛娱乐行业用户规模趋于见顶&#xff0c;泛娱乐社交APP转向出海是必然趋势。 根据行业数据显示&#xff0c;有超过35%的国内实时社交企业已启动或者正在规划出海&#xff0c;而其中出海商户的音视频流量增长均超过了100&#xff05;。尤其是在东南亚、中东、拉美等新兴…