Spring-Boot---配置文件

文章目录

  • 配置文件的作用
  • 配置文件的格式
    • Properties
      • Properties基本语法
      • 读取Properties配置文件
    • yml
      • yml基本语法
      • 读取yml配置文件
    • Properties VS Yml

配置文件的作用

整个项目中所有重要的数据都是在配置文件中配置的,具有非常重要的作用。比如:

  1. 数据库的连接信息
  2. 项目的启动端口
  3. 用于发现问题和定位问题的日志

配置文件的格式

在这里插入图片描述

注:

  1. properties格式是老版本,在创建SpringBoot项目时默认使用properties格式;yml格式是新版本。
  2. properties格式和yml格式可以同时出现在一个项目中,但是properties格式的配置文件优先级高(当在两种格式的配置文件里出现同一个配置时会采用properties格式的配置),在加载完properties格式的配置文件后也会加载yml格式的配置文件
  3. 建议在一个项目中只采用一种格式,便于维护。

Properties

Properties基本语法

server.port=8888
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/learning?characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=

注:

  1. properties格式的配置文件是SpringBoot项目默认的配置文件

  2. properties是以键值对的形式组织的,key和value之间用=连接

  3. 缺点:有很多冗余的信息,使用yml格式来解决

读取Properties配置文件

@Component
public class ReadProperties {@Value("${server.port}")private String port;@PostConstructpublic void postConstruct(){System.out.println("server.port:" + port);}
}

注:

  1. 我们可以使用@Value注解来主动获取到配置文件中的内容
  2. @Value注解使用 ${} 的格式来读取配置文件

yml

yml基本语法

server: port:8080spring:datasource:url: jdbc:mysql://127.0.0.1:3306/learning?characterEncoding=utf8&useSSL=falseusername: rootpassword: 

注:

  1. yml也是以键值对的形式组织的,key和value之间用:连接,:和value之间必须有一个空格
  2. yml有很多优点:可读性高、写法简单、支持更多的数据类型、支持更多的编程语言

读取yml配置文件

@Component
public class ReadYml {@Value("${server.port}")private String port;@PostConstructpublic void postConstruct() {System.out.println("Read YML,port:" + port);}
}

注:读取yml格式配置文件的方式和读取properties格式配置文件的方式一样,都是使用@Value注解,采用 ${} 格式读取。

Properties VS Yml

  1. properties是以键值对 key=value 的形式配置的;yml是以 key: value 的形式配置的,层级之间采用换行缩进的方式,且空格绝对不能少
  2. properties是早期的配置格式,有数据冗余的问题;yml是新的配置格式,解决了数据冗余的问题
  3. yml的通用性更好,支持更多的编程语言
  4. yml支持更多的数据类型

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

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

相关文章

如何解决MAC卸载软件后图标还在的问题

今天卸载photoshop突然遇到一个问题,程序卸载完成后居然还有一大堆的图标删不掉,果断找法子,下面就是我应用到的方法,希望对你有所帮助,只能是photoshop太流氓啊。。。 方法一: 使用命令(Command) 空格键…

Vue3中的defineModel

目录 一、vue3的defineModel介绍 二、defineModel使用 (1)在vite.config.js中开启 (2)子组件 (3)父组件 一、vue3的defineModel介绍 为什么要使用到defineModel呢?这里有这样一种场景&…

Java的NIO工作机制

文章目录 1. 问题引入2. NIO的工作方式3. Buffer的工作方式4. NIO数据访问方式 1. 问题引入 在网络通信中,当连接已经建立成功,服务端和客户端都会拥有一个Socket实例,每个Socket实例都有一个InputStream和OutputStream,并通过这…

Mirrors and reflections for VR

专为虚拟现实而建,但也非常适合非虚拟现实桌面和移动项目 这是URP管道,从Unity2019.4.16一直测试到2023年。 完全工作场景预览,轻松修改着色器材质。着色器支持折射,可以制作很酷的效果。 镜子/反射可以互相反射,而不仅仅是2...想象一下一个电梯,3面镜子都互相反射,直到…

【PTA刷题】 求子串(代码+详解)

【PTA刷题】 求子串(代码详解) 题目 请编写函数,求子串。 函数原型 char* StrMid(char *dst, const char *src, int idx, int len);说明:函数取源串 src 下标 idx 处开始的 len 个字符,保存到目的串 dst 中,函数值为 dst。若 len…

算法-02-排序-冒泡插入选择排序

一般最经典的、最常用的:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。那么我们如何分析一个"排序算法"呢? 1-分析排序算法要点 时间复杂度:具体是指最好情况、最坏情况、平均情况下的时间复杂…

现代雷达车载应用——第2章 汽车雷达系统原理 2.1节

经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.1 基本雷达功能 雷达系统通过天线或天线阵列向空间辐射电磁能量。辐射的电磁能量“照亮”周围的目标。“被照亮”的目标拦截一些辐射能量&#xff0…

如何搭建eureka-server

在Spring Cloud项目的pom文件中添加eureka-server的starter依赖坐标 <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://ma…

每日一道c语言

任务描述 题目描述:输入10个互不相同的整数并保存在数组中&#xff0c;找到该最大元素并删除它&#xff0c;输出删除后的数组 相关知识&#xff08;略&#xff09; 编程要求 请仔细阅读右侧代码&#xff0c;结合相关知识&#xff0c;在Begin-End区域内进行代码补充&#xf…

论文阅读《Learning Adaptive Dense Event Stereo from the Image Domain》

论文地址&#xff1a;https://openaccess.thecvf.com/content/CVPR2023/html/Cho_Learning_Adaptive_Dense_Event_Stereo_From_the_Image_Domain_CVPR_2023_paper.html 概述 事件相机在低光照条件下可以稳定工作&#xff0c;然而&#xff0c;基于事件相机的立体方法在域迁移时性…

【头歌系统数据库实验】实验9 SQL视图

目录 第1关&#xff1a;请为三建工程项目建立一个供应情况的视图V_SPQ&#xff0c;包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY) 第2关&#xff1a;从视图V_SPQ找出三建工程项目使用的各种零件代码及其数量 第3关&#xff1a;从视图V_SPQ找出供应商S1的供应情况 第4…

事业单位选岗技巧

事业单位选岗技巧 下面这些都是不需要笔试直接面试的岗位&#xff0c;一定不要被自己限制的条件所卡死了&#xff0c;一定要灵活&#xff0c;一定要放的开

C++STL库的 deque、stack、queue、list、set/multiset、map/multimap

deque 容器 Vector 容器是单向开口的连续内存空间&#xff0c; deque 则是一种双向开口的连续线性空 间。所谓的双向开口&#xff0c;意思是可以在头尾两端分别做元素的插入和删除操作&#xff0c;当然&#xff0c; vector 容器也可以在头尾两端插入元素&#xff0c;但是在其…

三防平板|手持终端PDA|8寸/10寸工业三防平板电脑主板方案定制

近年来&#xff0c;随着科技的快速发展&#xff0c;三防平板成为了各行各业中不可或缺的工具。三防平板采用IP67级别的防护设计&#xff0c;通过了多项测试标准&#xff0c;如国标和美标&#xff0c;具备防水、防摔、防尘、防撞、防震、防跌落以及防盐雾等多重防护功能。因此&a…

ARM:作业3

按键中断代码编写 代码: key_it.h #ifndef __KEY_IT_H__ #define __KEY_IT_H__#include "stm32mp1xx_gpio.h" #include "stm32mp1xx_exti.h" #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gic.h"void key1_it_config(); voi…

vxe-table 右键菜单+权限控制(v3)

1.menu-config 是用于配置右键菜单的属性。通过 menu-config 属性&#xff0c;定义右键菜单的内容、显示方式和样式。 通过 menu-config 属性配置了右键菜单&#xff0c;其中的 options 属性定义了右键菜单的选项。用户在表格中右键点击时&#xff0c;将会弹出包含这些选项的自…

练练手之“四环”“磁铁”(svg)

文本是闲暇之余练习svg的运用的产物&#xff0c;记录以备有需。 <svg xmlns"http://www.w3.org/2000/svg" viewBox"0 0 500 500" width"500px" height"500px"><path d"M150,100 A50,50 0 1,1 150,99.999" stroke&q…

【数据结构(九)】顺序存储二叉树(2)

文章目录 1. 相关概念2. 顺序存储二叉树的遍历 1. 相关概念 从数据存储来看&#xff0c;数组存储方式和树的存储方式可以相互转换&#xff0c;即数组可以转换成树&#xff0c;树也可以转换成数组&#xff0c;看右面的示意图。 转换原则:     1.上图的二叉树的结点&#xff…

【深度学习】注意力机制(五)

本文介绍一些注意力机制的实现&#xff0c;包括CSRA/Spatial Shift/Triplet Attention/Coordinate Attention/ACmix。 【深度学习】注意力机制&#xff08;一&#xff09; 【深度学习】注意力机制&#xff08;二&#xff09; 【深度学习】注意力机制&#xff08;三&#xff…

python 实现 AIGC 大模型中的概率论:生日问题的基本推导

在上一节中&#xff0c;我们对生日问题进行了严谨的阐述&#xff1a;假设屋子里面每个人的生日相互独立&#xff0c;而且等可能的出现在一年 365 天中的任何一天&#xff0c;试问我们需要多少人才能让某两个人的生日在同一天的概率超过 50%。 处理抽象逻辑问题的一个入手点就是…