SpringBoot配置文件

news/2025/1/31 9:03:29/

什么是配置文件

如下图:

SpringBoot项目中会有一个自带的配置文件,它是properties后缀的。

配置文件的作用

配置文件是用来配置项目中的一些重要数据的。

如:数据库连接信息、项目的启动端口、日志等等。

如果没有这些信息,SpringBoot就无法连接和操作数据库,甚至不能保存用于排查错误信息的日志,所以,配置文件的作用是很重要的。

两种后缀的配置文件

.properties后缀的配置文件

它的格式为 key:value 格式的键值对

如果是多级的key,要用 . 来隔开,并且,即使有多个key都有相同的前缀,也不能简写。

如下:

(’‘#’是注释)

此时我想将启动端口设置为9090,此时就可以在配置文件里面输入如下:

然后我们启动项目看一下启动端口是否修改成功,如下:

 .yaml(yml)后缀的配置文件

.yaml的配置文件和.yml是相同的,后面就全部使用.yml为后缀

.yml文件的格式比较灵活,但是也很容易出错,它的写法类似于json,如下:

和.properties不同的是,它的每个层级都可以向下延伸,也就是说一个key后面可以跟多个不同的key。每个下级key都要和它的上级key之间留出一个 tab 的距离,并且在:后还要加一个空格。

如下:

key1:key2: value

两种后缀的区别和优缺点

.properties的优点:系统默认的配置文件、格式简单、优先级比.yml高(如果两个后缀的配置文件同时存在,并且有相同的配置信息,此时以.properties为优先)

.properties的缺点:写法比较冗余(多个同一目录下的key,需要写多次前缀)

.yml的优点:

1. 可读性高(不冗余),便于理解

2. 支持多种数据格式,如数组、对象...

3. 支持更多的编程语言

.yml的缺点:语法太灵活,容易出错。

用户自定义配置(.yml为例)

用户自定义的配置也是 key:value 的格式

如下:

mystr1: 你\n好
mystr2: '你\n好'
mystr3: "你\n好"

如果我们想要将这几个自定义的配置内容拿到,此时需要一个注解:@Value("${key}"),并且获取配置内容的类要被五大类注解修饰。

如果配置内容不加引号或加单引号,此时读取的是原本内容(特殊字符也不加翻译),如果加了双引号,此时会按照内容的原意返回,如下:

mystr1: 你\n好
mystr2: '你\n好'
mystr3: "你\n好"
@Controller
public class TestController {@Value("${mystr1}")private String mystr1;@Value("${mystr2}")private String mystr2;@Value("${mystr3}")private String mystr3;@PostConstructpublic void doPostConstruct() {System.out.println("-------------------------------");System.out.println(mystr1);System.out.println(mystr2);System.out.println(mystr3);System.out.println("-------------------------------");}
}

此时运行项目,就可以看到区别:

 第一个是不加引号,第二个是加单引号,此时都没有将\n翻译为换行,而第三个加的双引号进行了换行。

除了上述的获取方式还有第二种。

student:id: 1name: "张三"age: 18
@ConfigurationProperties("student")
@Component
@Setter
@Getter
@ToString
public class StudentComponent {private int id;private String name;private int age;
}

我们给类加上了@ConfigurationProperties("key")注解。

此时会将key名相同,并且实现了setter方法的属性进行赋值,

此时我们输出这个类的信息。

@Controller
@ResponseBody
public class TestController {@Autowiredprivate StudentComponent component;@PostConstructpublic void doPostConstruct() {System.out.println(component);}
}

SpringBoot不同平台的配置规则

1. 必须有主配置文件:application.xxx(后缀:.properties或.yml) 

2. 不同配置平台的配置文件(不同平台都有自己的配置文件)。

名称为:application-xxx(xxx的内容自己设定).xxx(后缀)

举个例子:

开发环境的配置文件,里面设置了6666端口

 测试环境的配置文件里面设置了7777端口

生产环境的配置文件里面设置了8888端口

  此时如我们想使用某一个环境下的内容,就在主配置文件里面输入如下:

spring:profiles:active: prod(文件application-xxx里面的xxx)

执行如下:如果正确输出就是8888端口

 更多的系统配置属性

Common Application Properties


http://www.ppmy.cn/news/51869.html

相关文章

操作系统之调度

目录 什么是调度 进程调度的时机、切换、过程与方式 调度器/调度程序 调度算法 先来先服务算法 短作业优先算法 高响应比优先算法 时间片轮转算法 优先级调度算法 多级反馈队列调度算法 什么是调度 调度的三个层次 高级调度 中级调度 低级调度 总结如下: …

‘gulp‘ 不是内部或外部命令,也不是可运行的程序

出现问题: D:\git\renwey-web-mobile>gulp default gulp 不是内部或外部命令,也不是可运行的程序 或批处理文件。 两种原因 原因一:环境变量没有设置 原因二:没有安装全局的gulp,只安装了本地gulp,…

博途1200/1500PLC工艺PID编程应用(SCL语言)

博途工艺PID的详细解读可以查看下面的博客文章,这里不再赘述 博途PLC 1200/1500PLC 工艺对象PID PID_Compact详细解读_RXXW_Dor的博客-CSDN博客这篇博文我们详细解读博途PLC自带的PID功能块PID_Compact,大部分工业闭环调节过程,我们采用系统自带的PID功能块基本都能胜任,一…

Matplotlib 安装

Matplotlib 安装 本章节,我们使用 pip 工具来安装 Matplotlib 库,如果还未安装该工具,可以参考python 怎么使用pip进行包管理。 安装 matplotlib 库: pip install matplotlib 安装完成后,我们就可以通过 import 来…

汇编小程序解析--3D立方体旋转

汇编小程序解析–3D立方体旋转,源代码如下,是vulture大神于1995年写的,我到现在才基本看懂。 ;本程序由国外的Vulture大哥编写,并公布了源码,这个是他95年的一个作品,可以说是在当时是非常成功的&#xff…

计算机专业毕业生求职选择及思考(干货满满)

这个专栏主要是关于应届生求职工作相关的文章,提供一些建议和思考后续持续更新! 后面章节持续更新 计算机专业毕业生求职的整体总结和概括。 求职时间 首先注意几个求职时间节点: 提前批: 秋招提前批,互联网大厂招…

vue封装公共组件库并发布到npm库详细教程

vue组件封装的原理:利用vue框架提供的api: Vue.use( plugin ),我们需要把封装好组件的项目打包成vue库,并提供install方法,然后发布到npm中。Vue.use( plugin )的时候会自动执行插件中的install方法。 一、组件库代码目录 目录…

适合程序员阅读的有用书籍:

几本适合程序员阅读的有用书籍: 1.《计算机程序设计艺术》(The Art of Computer Programming)是由Donald E. Knuth撰写的一系列著作,是计算机科学领域的经典之作。该系列著作共分为三卷,分别介绍了算法和计算机程序设计的基础知识和技巧。 …