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

【SpringBoot3学习 | 第1篇】SpringBoot3介绍与配置文件

在这里插入图片描述

文章目录

      • 前言
    • 一. SpringBoot3介绍
      • 1.1 SpringBoot项目创建
          • 1. 创建Maven工程
          • 2. 添加依赖(springboot父工程依赖 , web启动器依赖)
          • 3. 编写启动引导类(springboot项目运行的入口)
          • 4. 编写处理器Controller
          • 5. 启动项目
      • 1.2 项目理解
          • 1. 依赖不需要写版本原因
          • 2. 启动器(Starter)
          • 3. @SpringBootApplication注解
    • 二. SpringBoot配置文件
      • 2.1 统一配置管理
      • 2.2 properties配置文件使用
      • 2.3 yaml配置文件使用
      • 2.4 批量配置文件注入
      • 2.5 多环境配置和使用

前言

使用XML、注解、Java配置类、以及他们的混合用法,让人觉得配置文件过于复杂和繁琐!

SpringBoot 帮助简单、快速地创建一个独立的、生产级别的 Spring 应用(说明:SpringBoot底层是Spring),大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术

一. SpringBoot3介绍

1.1 SpringBoot项目创建

1. 创建Maven工程

在这里插入图片描述

2. 添加依赖(springboot父工程依赖 , web启动器依赖)
  • springboot父工程依赖

    <parent><!-- spring-boot --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version>
    </parent>
    
  • web启动器依赖

    <dependencies><!-- 导入对应启动器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
    
3. 编写启动引导类(springboot项目运行的入口)
package com.hky;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @author hky* @date ${DATE}* @Description*/// 1. 包含配置类 @SpringBootConfiguration// 2. 自动加载配置 @EnableAutoConfiguration// 3. @ComponentScan 默认扫描当前类所在包,子包的注解@SpringBootApplication //启动类public class Main {public static void main(String[] args) {SpringApplication.run(Main.class,args);//自动创建ioc容器,启动tomcat服务器软件}}
4. 编写处理器Controller
package com.hky.controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/*** @author hky* @date 2024/6/28* @Description*/@RestController@RequestMapping("hello")public class HelloController {@GetMapping("boot")public String hello(){return "hello springboot3!!";}}
5. 启动项目

点击启动类,启动项目
在这里插入图片描述

1.2 项目理解

1. 依赖不需要写版本原因
  • 每个boot项目都有一个父项目spring-boot-starter-parent
  • parent的父项目是spring-boot-dependencies,父项目把所有常见的jar的依赖版本都声明好了。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
2. 启动器(Starter)

Starter的是一组预定义的依赖项集合

作用:简化Spring应用程序的配置和构建过程,以便在启动应用程序时自动引入所需的库、配置和功能。

  • 使用Starter:在 pom.xml 中添加所需的Starter依赖,Spring Boot会自动处理依赖管理和配置。
  • spring boot提供的全部启动器地址
3. @SpringBootApplication注解
  • @SpringBootApplication注解是Spring Boot框架中的核心注解,它的主要作用是简化和加速Spring Boot应用程序的配置和启动过程
  • 其中包含:

    (1)@EnableAutoConfiguration注解:启用Spring Boot的自动配置机制
    (2)@ComponentScan注解:自动扫描并加载应用程序中的组件
    (3)@Configuration注解:将被标注的类声明为配置类。配置类可以包含Spring框架相关的配置、Bean定义,以及其他的自定义配置。使得配置和启动可以同时发生。

二. SpringBoot配置文件

2.1 统一配置管理

SpringBoot 进行统一的配置管理,任何参数(端口号、项目根路径、数据库连接信息等等)都集中到一个固定位置和命名的配置文件(application.propertiesapplication.yml)中!

  • 配置文件应该放置在Spring Boot工程的src/main/resources目录下
  • 命名:application 后缀 .properties / .yaml / .yml
  • 若同时存在application.properties | application.yml(.yaml) , properties的优先级更高。

2.2 properties配置文件使用

  • 在resources文件夹下创建一个application.properties 配置文件
    在这里插入图片描述
    配置文件内用 key=值 的形式书写配置文件\

    server.port=8081
    server.servlet.context-path=/huahua# 自定义
    hky.name=hekaiyan
    hky.age=18
    
  • 读取配置文件
    使用@Value(“${hky.name}”)

    @RestController
    @RequestMapping("hello")
    public class HelloController {@Value("${hky.name}")private String name;@GetMapping("boot")public String hello(){System.out.println(name);return "hello springboot3!!";}
    }

2.3 yaml配置文件使用

  • YAML:一种基于层次结构的数据序列化格式,旨在提供一种易读、人类友好的数据表示方式。

  • YAML配置文件的扩展名是yaml 或 yml

    
    server:port: 8081servlet:context-path: /huahuahky:info:name: hekaiyan  #此时,冒号属性后面必须有一个空格age: 18anims:          #数组- dog- cat
    

2.4 批量配置文件注入

@ConfigurationProperties:可以将一些配置属性批量注入到bean对象

  • 创建实体类,在实体类中添加属性和注解(属性名称和配置文件中的key必须要保持一致才可以注入成功)
    package com.hky.pojo;import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    import org.springframework.stereotype.Controller;import java.util.List;/*** @author hky* @Description**  读取配置文件信息:*      1. @Value读取*          只能读取一个值,不能读取数组*      2. 批量读取 @ConfigurationProperties(prefix = "")*/
    @Data
    @Component
    @ConfigurationProperties(prefix = "hky.info")
    public class User {private String name;private String age;private List<String> anims;}

2.5 多环境配置和使用

Spring Boot中,可以使用多环境配置来根据不同的运行环境(如开发、测试、生产)加载不同的配置。

  • 通过yaml方式实现多环境配置
    application-dev.yaml

    hky:info:name: hekaili
    

    application-test.yaml

    hky:info:age: 20
    

    application.yaml

    
    server:port: 8081servlet:context-path: /huahuahky:info:name: hekaiyan  #此时,冒号属性后面必须有一个空格age: 18anims:          #数组- dog- catspring:profiles:active: test,dev  # 激活外部配置# 外部配置的 key 与 application 的 key 重复,外部配置覆盖
    
  • controller类

    @RestController
    @RequestMapping("user")
    public class HelloController {@Autowiredprivate User user;@GetMapping("show")public User show(){return user;}}
    
  • 测试显示
    在这里插入图片描述

  • :如果设置了spring.profiles.active,并且和application有重叠属性,以active设置优先

  • 也可使用 properties 以及 命令行参数 实现多环境配置

http://www.lryc.cn/news/392303.html

相关文章:

  • SpringBoot整合Dubbo的快速使用教程
  • 昇思25天学习打卡营第12天| 基于MindNLP+MusicGen生成自己的个性化音乐
  • 代理设计模式和装饰器设计模式的区别
  • [Microsoft Office]Word设置页码从第二页开始为1
  • 【C++】日期类
  • 力扣热100 滑动窗口
  • 三万字带你一遍跑通uer
  • Ubuntu24.04LTS基础软件下载
  • SQLAlchemy配置连接多个数据库
  • NLP+LLM从入门到精通系列
  • 用数组手搓一个小顶堆
  • 【Linux开发】基于ALSA库实现音量调节
  • 代理IP在未来将面临哪些挑战?
  • FineBI在线学习资源-数据处理
  • 【代码随想录算法训练营第37期 第四十五天 | LeetCode198.打家劫舍、213.打家劫舍II、337.打家劫舍III】
  • Elasticsearch查询上下文和_source
  • golang实现网卡流量监控
  • 技术分享:直播平台如何开发并接入美颜SDK
  • 左耳听风_114_113_Go编程模式修饰器
  • Java实习手册(小白也看得懂)
  • Elasticsearch 分析器(Analyzer)的作用和配置
  • SpringBoot(一)创建一个简单的SpringBoot工程
  • 简述Vue中的数据双向绑定原理
  • C++STL函数对象的应用
  • AJAX-day1:
  • 昆虫学(书籍学习资料)
  • springboot + mybatis 多数据源切换
  • windows电脑网络重置后wifi列表消失怎么办?
  • Python + 在线 + 文生音,音转文(中文文本转为英文语音,语音转为中文文本)
  • 哏号分治,CF103D - Time to Raid Cowavans