【SpringBoot3.x教程02】SpringBoot配置文件详解

前言:什么是配置文件

SpringBoot的配置文件是指用于定义和管理SpringBoot应用程序配置的文件。这些配置文件允许开发者调整和控制应用程序的行为,而无需改变代码。主要有两种格式的配置文件:
1、application.properties:这是一种使用简单键值对来配置的传统格式。它位于项目的src/main/resources目录下。每一项配置都是一行,以点分隔的属性名和其值组成,例如:

server.port=8080
spring.datasource.url=jdbc:mysql://localhost/test

2、application.yml:这是一种使用YAML(YAML Ain’t Markup Language)格式的配置文件,也位于src/main/resources目录下。YAML是一种数据序列化格式,以数据的层次结构为基础,适合表示复杂的配置结构。YAML文件的读取顺序是从上到下,支持使用缩进表示层级关系,YAML文件是强格式的,对于缩进有着严格的要求,每次缩进两格代表一个属性,例如:

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost/test

本文重点:配置文件中的常用配置

1. 基本属性配置

application.propertiesapplication.yml中配置应用的基本属性,比如端口、上下文路径等。

  • application.properties

    server.port=8080
    server.servlet.context-path=/app
    
  • application.yml

    server:
      port: 8080
      servlet:
        context-path: /app
    

2. 数据库配置

配置数据源,包括URL、用户名和密码等。

  • application.properties

    spring.datasource.url=jdbc:mysql://localhost:3306/mydb
    spring.datasource.username=root
    spring.datasource.password=secret
    
  • application.yml

    spring:
      datasource:
        url: jdbc:mysql://localhost:3306/mydb
        username: root
        password: secret
    

3. 日志配置

配置日志级别和日志文件路径。

  • application.properties

    logging.level.root=WARN
    logging.file.name=app.log
    
  • application.yml

    logging:
      level:
        root: WARN
      file:
        name: app.log
    

4. 多环境配置

使用不同的配置文件管理不同环境的配置。

  • application-dev.properties

    server.port=8081
    
  • application-prod.properties

    server.port=80
    

激活特定环境的配置文件。

  • application.properties

    spring.profiles.active=dev
    
  • 通过命令行参数激活

    java -jar yourapp.jar --spring.profiles.active=prod
    

5. 自定义配置

定义自己的配置属性并在应用中引用。

  • application.properties

    app.custom.property=MyValue
    
  • 使用@Value注解引用

    @Value("${app.custom.property}")
    private String customProperty;
    

6. 配置文件中的占位符

使用已有的配置值作为其他配置值的一部分。

  • application.properties

    app.name=MyApp
    app.description=${app.name} is a SpringBoot application
    

7. 配置绑定到实体类

将配置文件的属性绑定到一个实体类上,支持各种类型数据的配置,比如List和Map。

  • application.yml

    app:
      name: MyApp
      description: My SpringBoot application
      fruits:
        - apple
        - banana
        - orange
      fruitColors:
        apple: red
        banana: yellow
        orange: orange
    
  • 实体类

    @Component
    @ConfigurationProperties(prefix="app")
    public class MyAppProperties {
        private String name;
        private String description;
        // getters and setters
    }
    

代码截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结束语:

本文章讲述了配置文件中常用的一些配置内容,并给出了对应的代码示例,对应的代码会上传到github,下一节我们主要讲解SpringBoot的自动配置

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

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

相关文章

Spring Security的API Key实现SpringBoot 接口安全

Spring Security的API Key实现SpringBoot 接口安全 Spring Security 提供了各种机制来保护我们的 REST API。其中之一是 API 密钥。API 密钥是客户端在调用 API 调用时提供的令牌。 在本教程中,我们将讨论如何在Spring Security中实现基于API密钥的身份验证。 API…

vue2+vite+@vitejs/plugin-vue2可以使用require引用图片资源

很多文章都说vite不能用require,vue3vite确实是这样的,但今天无意间发现vue2vite中是可以使用require引用资源的 vue3搭配vite一般使用的是vitejs/plugin-vue解析vue语法,而vue2使用的则是另一个插件vitejs/plugin-vue2插件解析vue语法 看下…

易基因:NAR:RCMS编辑系统在特定细胞RNA位点的靶向m5C甲基化和去甲基化研究|项目文章

喜讯!易基因表观转录组学RNA-BS技术服务见刊《核酸研究》 大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 2024年2月15日,吉林大学张涛、赵飞宇、李金泽为共同第一作者,吉林大学李占军、隋婷婷及赖良…

Oracle 的同义词(Synonym) 作用

Oracle 同义词(Synonym) 是数据库对象的一个别名,Oracle 可以为表、视图、序列、过程、函数、程序包等指定一个别名。同义词有两种类型: 私有同义词:拥有 CREATE SYNONYM 权限的用户(包括非管理员用户)即可创建私有同义词,创建的…

蓝桥杯嵌入式省赛模板构建——测量两路频率和占空比

结合测量一路PWM频率编程 测量占空比:测量高电平持续时间和周期 思路: ①.第一次上升沿中断,清零计数器,开始计时并改成下降沿中断 ②.下降沿中断,获取计数值T1,并改为上升沿中断 ③.第二次上升沿中断…

一个本科渣渣是怎么逆袭从咸鱼到Offer收割机的,Android开发了解这些自然无惧面试

面试题 一般Android面试分为两部分:Java部分和Android部分,下面说一下自己面试过程遇到的一些具体题目和一些相关知识点。 一 JAVA相关 点击领取完整开源项目《安卓学习笔记总结最新移动架构视频大厂安卓面试真题项目实战源码讲义》 1)JAVA…

RabbitMQ(任务模型,交换机(广播,订阅,通配符订阅))

一.WorkQueues模型 WorkQueues(任务模式):让多个消费者绑定到一个队列,共同消费队列中的消息。 架构: 所需场景: 当消息处理比较耗时的时候,可能生产消息的速度会远远大于消息的消费速度。长此以往,消息就会堆积越来越多,无法及…

工业镜头的重要参数之视场、放大倍率、芯片尺寸--51camera

今天来简单介绍下工业镜头中常用的参数中的三个: 1、视场 视场(FOV)也称视野,是指能被视觉系统观察到的物方可视范围。 对于镜头而言,可观察到的视场跟镜头放大倍率及相机芯片选择有关。因此需要根据被观察物体的尺寸&#xff…

docker安装和配置minio

1. 安装镜像 docker pull minio/minio:latest上方的命令是拉取最新版本, 目前我的版本为1.29.0 2. 运行minio 客户端端口号: 29000 ,服务端端口号: 29090 docker run -p 29000:29000 -p 29090:29090 \--name minio \-d --restartalways \-e "MINIO_ACCESS_KEYminioadm…

《花书》学习:LeNet

# LeNet网络架构 正常的应该是:输入→操作→输出 但都简化 要么省略 操作 要么省略 输出 # LeNet第一个卷积层详解

华为OD七日集训第1期 - 按算法分类,由易到难,循序渐进,玩转OD

目录 一、适合人群二、本期训练时间三、如何参加四、七日集训第 1 期,极简题,培养刷题兴趣五、精心挑选21道高频100分经典题目,作为入门。第1天、逻辑分析第2天、字符串处理第3天、数组第4天、数据结构第5天、栈第6天、双指针第7天、二分查找…

Java面试题【必知必会】Spring常见面试题(2024)

近期一直在准备面试,所以为了巩固知识,也为了梳理,整理了一些java的基础面试题!同时也希望各位英雄和女侠能够补充!不胜荣幸!!! 1.spring是什么?它的优点是什么&#xff…

灯塔:CSS笔记(1)

CSS&#xff1a;层叠样式表 所谓层叠 即叠加的意思&#xff0c;表示样式可以一层一层的层叠覆盖 css写在style标签中&#xff0c;style标签一般写在head标签里面&#xff0c;title标签下面 <!DOCTYPE html> <html lang"en"> <head><meta cha…

js设计模式:解释器模式

作用: 对文本进行解释和编译的时候,就会用到解释器模式 比如你写了一段js代码,js引擎就会去解释并执行这段代码 webpack中的各种loader就是用来解释各种文件类型的,并将其解释为js可识别的代码 示例: //翻译词库const wordList [{text:韩信前期有蓝有红,必须拿二杀。你要是…

衣服晒三天湿臭,AI果蝇图片一般,玩物让生活更急幸福——早读(逆天打工人爬取热门微信文章解读)

回南天&#xff0c;衣服晒三天湿臭 引言python代码第一篇 人民日报 极简工作报告第二篇 人民日报 【夜读】5个好习惯&#xff0c;让生活更幸福第三篇 人民日报 来了&#xff01;新闻早班车要闻社会政策 结尾 路漫漫其修远兮&#xff0c;犹如披荆斩棘翻越高山之巅 在疾风骤雨中砥…

#QT(TCP网络编程-服务端)

1.IDE&#xff1a;QTCreator 2.实验&#xff1a;编写一个tcp服务端 QTcpsever QTcpsocket 3.记录&#xff1a; (1)先搭建界面 &#xff08;2&#xff09;服务端代码 a. pro QT core gui networkgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c1…

2024关于idea激活码报This license xxxx has been suspended

HOSTS文件中增加 0.0.0.0 www.jetbrains.com 0.0.0.0 account.jetbrains.com 然后

7、Linux-防火墙和配置静态ip

一、防火墙&#xff08;防火墙服务名firewalld&#xff09; 防火墙配置命令&#xff1a;firewall-cmd firewall-cmd --help&#xff1a;防火墙帮助firewall-cmd --state&#xff1a;查看防火墙状态firewall-cmd --zonepublic --list-ports&#xff1a;查看所有打开的端口firew…

三大数学软件之Maple

相信钻研数学的小伙伴们对MATLAB、SPSS这样的重量级软件并不陌生&#xff0c;这些大型软件能求解复杂的运算&#xff0c;解决各领域的数学问题。今天博主为大家带来了一款名不见经传的软件——Maple&#xff0c;作为三大数学软件之一&#xff0c;Maple同样拥有不菲的计算能力&a…

医院电动床脚踏开关的机械强度测试检测

医院电动床是现代医疗设备中不可或缺的一部分。它们提供了病人安全舒适的床位&#xff0c;并具备调节床位高度和角度的功能。然而&#xff0c;在日常使用过程中&#xff0c;医院电动床的各个部件可能会受到一定程度的磨损和摩擦。因此&#xff0c;确保电动床的每个关键部件的机…