问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

SpringBoot3快速入门与配置文件详解

创作时间:
作者:
@小白创作中心

SpringBoot3快速入门与配置文件详解

引用
CSDN
1.
https://blog.csdn.net/GavinGroves/article/details/136612701

SpringBoot3是Spring框架的最新版本,它在简化开发、配置、整合、部署、监控和运维等方面做了大量优化。本文将从快速入门、配置文件使用以及多环境配置等多个维度,详细介绍SpringBoot3的核心功能和使用方法。

SpringBoot3介绍

SpringBoot3 官方文档
SpringBoot底层是Spring。
约定大于配置,基本不需要主动编写配置类、也不需要 XML 配置文件。
总结:
简化开发,简化配置,简化整合,简化部署,简化监控,简化运维。
技术&工具 版本(or later)
maven 3.6.3 or later 3.6.3 或更高版本
Tomcat 10.0+
Servlet 9.0+
JDK 17+

下一篇 :
【SpringBoot3】整合SpringMVC
【SpringBoot3】整合Druid数据源和Mybatis 项目打包和运行

一、快速入门

  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. 为什么依赖不需要写版本?

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

2. 启动器(Starter)是什么

  • Spring Boot提供了一种叫做
    Starter
    的概念,它是一组预定义的依赖项集合,旨在简化Spring应用程序的配置和构建过程。
  • Starter
    包含了一组相关的依赖项,以便在启动应用程序时自动引入所需的库、配置和功能。
    主要作用如下:
    Spring Boot提供了许多预定义的Starter,例如 :
  • spring-boot-starter-web用于构建Web应用程序,
  • spring-boot-starter-data-jpa用于使用JPA进行数据库访问,
  • spring-boot-starter-security用于安全认证和授权等等。
    spring boot提供的全部启动器地址:Starter - springboot启动器 官方文档

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

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

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

三、SpringBoot3配置文件

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

application.yml
)中

3.1 统一配置管理概述

配置文件应该放置在Spring Boot工程的
src/main/resources
目录下。这是因为
src/main/resources
目录是Spring Boot默认的类路径(classpath),配置文件会被自动加载并可供应用程序访问。
功能配置参数说明:springboot配置参数 - 官方文档

细节总结:

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

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!!!";
    }
}

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;
    }
}
  • 测试

3.5 多环境配置和使用

  • 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

总结

springboot-part - GitHub

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

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号