千家信息网

SpringBoot中application配置文件使用方法

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,现在我们已经知道,我们可以通过在运行jar时提供一系列的参数来定制SpingBoot为我们默认做好的设置。如果我们要定制的属性很多,在实际开发中,你可能会需要覆盖上百个SpringBoot的默认设置,
千家信息网最后更新 2025年12月02日SpringBoot中application配置文件使用方法

现在我们已经知道,我们可以通过在运行jar时提供一系列的参数来定制SpingBoot为我们默认做好的设置。如果我们要定制的属性很多,在实际开发中,你可能会需要覆盖上百个SpringBoot的默认设置,如果这些设置写在java -jar 运行命令中一点都不优雅,也不利于维护。那如何是好?

SpringBoot提供了专门的属性配置文件和配置接口。

SpringBoot默认加载的属性配置文件名称为application,就像你用Spring框架一样,也有一个全局的配置文件。

你可以在resource目录下创建application.properties,把需要定制的SpringBoot属性写入其中,
比如你要修改SpringBoot启动的默认端口,就加入server.port属性;要修改redis的默认端口,可以加入spring.redis属性;要修改rabbitmq的连接地址,可以加入spring.rabbitmq.host属性,就像这样:

重启项目后,就看到默认端口已经修改为8081。这跟使用启动命令java -jar运行道理是一样的,只不过看起来更利于维护。如果你觉得就这么几个参数,直接写在启动命令中岂不更省事?实际项目中需要进行设置的内容往往很多,甚至还要复杂。

因此,自己定义application.properties来管理框架定制属性的意义就很重要了。

而且,application.properties的作用远不止于此。

他还能方便区分和管理不同环境的配置。开发人员经常要在本地环境、测试环境甚至生产环境中切换,以便更好的开发或排查问题。在以前,我们可能是通过在application.properties中注释掉一部分并写上另一部分内容的方式来切换不同环境。然而,现在有更优雅的方式。

可以通过再application后添加不同的后缀名称来区分不同项目环境,不用全部杂糅在一个配置文件中。比如这样:

一般约定,dev代表开发环境,test代表测试环境, prod代表生产环境。通过不同的后缀名称,不同环境配置一目了然。

最后在根配置文件,也就是application.properties中添加 spring.profiles.active=dev来指定启用哪个配置,比如这里的dev就对应application-dev.properties,也就是我们约定的开发环境配置。

那如果application.properties中和application-dev.properties都有相同的配置属性,结果如何呢?

答案是,spring.profiles.active对应了哪个就是哪个生效,除非那个配置文件中没有定义的属性,才会被application.properties中定义的覆盖,如果两个文件中都没有,则沿用springboot默认设置。

另外,附带提一下,springboot配置文件还有一种yaml格式,比如上述的application.properties可以命名为application.yml,作用完全相同,只不过yaml文件是用树形结构来编写属性,就像这样:

而当项目中同时存在application.properties和application.yml时,起作用的是application.properties。 同一目录下,properties配置优先级 高于 YAML配置优先级。

使用建议

1、尽量统一使用一种格式的配置文件,尽量不要两种格式混用。

2、properties虽然传统而且好用,但官方更推荐用yaml格式,因为树形结构可读性更强,这也是很多编程语言的趋势。3、一般情况下,我们都会放在resource根目录下,也可以放在resource/config目录下,这种情况下,优先级最高的是resource/config中的配置文件,这也是官方推荐的方式。因此,建议大家将springboot本身的配置文件放在resource/config目录下。

最后,附上完整的配置参数清单,需要修改默认的哪些设置,对照这个清单上找到,然后application文件中覆盖默认属性接口。springboot的这些属性很多是要另外在pom中添加相关的starter才能使用这些功能和参数定制。

配置 文件 属性 环境 不同 开发 参数 格式 目录 项目 代表 优先级 作用 命令 方式 端口 运行 相同 优雅 也就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 猫和老鼠手游土豆服务器闪退 广东网络技术转让电话多少 瑞金市点寰互联网科技 java删除一行数据库 软件开发思 数据库软件安装没有桌面快捷方式 电厂工作网络安全应急处置 网络安全风险排查报告模板 人才紧缺 网络安全 数据采集服务器是什么 不能使用关键词字段的数据库有 数据库邮政编码查询 杭州恒生软件开发实习生待遇 魂斗罗连接不了服务器 广州汽车软件开发外包 关于网络安全的短视频图片 国家教学基本状态数据库 四川大学网络安全学院陈兴蜀 软件开发测算报告 英国制定智能车网络安全准则 网络安全研判制度 测试软件开发工程师求职信 阴阳师还有春之樱服务器吗 虚拟机和服务器怎么做web 网络安全防护前沿科技 vnc连接服务器时报错超时 asscs数据库 是德收购网络安全公司 如何设置宇视服务器访问地址 河北前端软件开发哪家可靠
0