详解Springboot配置文件的使用

发布时间 - 2026-01-11 02:17:33    点击率:

如果使用IDEA创建Springboot项目,默认会在resource目录下创建application.properties文件,在springboot项目中,也可以使用yml类型的配置文件代替properties文件

一、单个的获取配置文件中的内容

在字段上使用@Value("${配置文件中的key}")的方式获取单个的内容

1.在resource目录下创建application.yml文件,并添加一些配置,在yml文件中,key:后面需要添加一个空格,然后是value值,假设配置如下

#注意:在yml文件中添加value值时,value前面需要加一个空格 
ip: 127.0.0.0 
port: 8080 

2.创建一个ConfigController类,获取配置文件中的内容并赋值给相应的字段

package com.example; 
import org.springframework.beans.factory.annotation.Value; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
@RestController 
public class ConfigController { 
 @Value("${ip}")//获取application.yml文件中名为ip的value值 
 private String ip; 
 @Value("${port}")//获取application.yml文件中名为port的value值,并且自动完成数据类型转换 
 private Integer port; 
 @RequestMapping("/config") 
 public String config() { 
  return "ip:"+ip+",port:"+port; 
 } 
} 

3.在SrpingbootdemoApplication中启动项目

package com.example; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
//入口 
@SpringBootApplication 
public class SpringbootdemoApplication { 
 public static void main(String[] args) { 
  SpringApplication.run(SpringbootdemoApplication.class, args); 
 } 
} 

4.在浏览器中输入http://localhost:8080/config,可以看到输出了配置文件中配置的内容

二、使用Bean自动注入获取配置文件中的内容

假如配置文件中有很多内容,一个一个获取将会很麻烦,那么我们另外一种方式去获取配置文件中的信息

1.在配置文件中添加以下信息(注意格式),此处我们使用了一个名为devconfig的前缀

devconfig: 
 ip: 127.0.0.0 
 port: 8080 

2.创建ConfigBean,在类中添加@Componet和@ConfigurationProperties注解,其中prefix设置为devconfig,将会获取yml中前缀为devconfig下的配置信息

package com.example; 
 import org.springframework.boot.context.properties.ConfigurationProperties; 
import org.springframework.stereotype.Component; 
@Component 
@ConfigurationProperties(prefix = "devconfig")//获取前缀为devconfig下的配置信息 
public class ConfigBean { 
 private String ip;//名字与配置文件中一致 
 private Integer port; 
 public String getIp() { 
  return ip; 
 } 
 public void setIp(String ip) { 
  this.ip = ip; 
 } 
 public Integer getPort() { 
  return port; 
 } 
 public void setPort(Integer port) { 
  this.port = port; 
 } 
} 

3.在ConfigController中使用@Autowrite对bean自动注入,实例化bean

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.beans.factory.annotation.Value; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
@RestController 
public class ConfigController { 
// @Value("${ip}")//获取application.yml文件中名为ip的value值 
// private String ip; 
// 
// @Value("${port}")//获取application.yml文件中名为port的value值,并且自动完成数据类型转换 
// private Integer port; 
 //自动注入,实例化bean 
 @Autowired 
 private ConfigBean configBean; 
 @RequestMapping("/config") 
 public String config() { 
  return "另一种方式: ip:"+configBean.getIp()+",port:"+configBean.getPort(); 
 } 
} 

4.运行程序,输入http://localhost:8080/config进行测试

三、多个配置文件切换使用

1.假设开发环境使用ip为:127.0.0.0 使用端口为:8080

          生产环境使用ip为:127.0.0.1 使用端口为:8081

下面来修改配置文件,在resource目录下创建一个名为application-dev.yml文件开发环境使用配置文件和application-produce.yml生产环境配置文件

application-dev.yml

config: 
 ip: 127.0.0.0 
 port: 8080 

application-produce.yml

config: 
 ip: 127.0.0.1 
 port: 8081 

application.yml中配置生效的配置文件,此处设为produce,也就是使用application-produce.yml文件

spring: 
 profiles: 
 active: produce 

2.修改ConfigBean的prefix为config

package com.example; 
import org.springframework.boot.context.properties.ConfigurationProperties; 
import org.springframework.stereotype.Component; 
@Component 
@ConfigurationProperties(prefix = "config") 
public class ConfigBean { 
 private String ip;//名字与配置文件中一致 
 private Integer port; 
 public String getIp() { 
  return ip; 
 } 
 public void setIp(String ip) { 
  this.ip = ip; 
 } 
 public Integer getPort() { 
  return port; 
 } 
 public void setPort(Integer port) { 
  this.port = port; 
 } 
} 

3.运行程序,在浏览器输入http://localhost:8080/config进行测试

4.也可通过启动jar包时添加参数来更改生效的配置文件,命令为

Java -jar XXX.jar --spring.profiles.active=poduce

以上所述是小编给大家介绍的详解Springboot配置文件的使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# springboot配置文件  # 解决spring boot 配置文件后缀的一个坑  # SpringBoot处理请求参数中包含特殊符号  # Spring Boot加密配置文件特殊内容的示例代码详解  # springboot 配置文件配置项前缀为0的数字特殊处理方式  # 配置文件  # 将会  # 目录下  # 创建一个  # 小编  # 进行测试  # 自动完成  # 多个  # 在此  # 中有  # 设为  # 会在  # 也可  # 给大家  # 可以看到  # 可以使用  # 设置为  # 所述  # 给我留言  # 感谢大家 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 免费视频制作网站,更新又快又好的免费电影网站?  如何用已有域名快速搭建网站?  如何获取PHP WAP自助建站系统源码?  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  Linux系统命令中screen命令详解  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  网站制作价目表怎么做,珍爱网婚介费用多少?  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  Laravel如何使用查询构建器?(Query Builder高级用法)  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  如何基于云服务器快速搭建个人网站?  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  js实现点击每个li节点,都弹出其文本值及修改  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  MySQL查询结果复制到新表的方法(更新、插入)  新三国志曹操传主线渭水交兵攻略  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  LinuxShell函数封装方法_脚本复用设计思路【教程】  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  微信小程序 wx.uploadFile无法上传解决办法  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  JavaScript如何实现音频处理_Web Audio API如何工作?  Android滚轮选择时间控件使用详解  如何快速搭建虚拟主机网站?新手必看指南  中山网站制作网页,中山新生登记系统登记流程?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  重庆市网站制作公司,重庆招聘网站哪个好?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  如何用AI帮你把自己的生活经历写成一个有趣的故事?  如何解决hover在ie6中的兼容性问题  jQuery中的100个技巧汇总  如何在建站主机中优化服务器配置?  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  实例解析Array和String方法  香港服务器网站推广:SEO优化与外贸独立站搭建策略  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  Laravel如何生成API文档?(Swagger/OpenAPI教程)  如何快速重置建站主机并恢复默认配置?  javascript基于原型链的继承及call和apply函数用法分析  如何在腾讯云服务器上快速搭建个人网站?