文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何正确的使用Springboot配置文件

2023-05-31 10:01

关注

这篇文章给大家介绍如何正确的使用Springboot配置文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

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

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

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

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

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

创建一个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;  } }

在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);  } }

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

如何正确的使用Springboot配置文件

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

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

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

devconfig:  ip: 127.0.0.0  port: 8080

创建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;  } }

在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();  } }

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

如何正确的使用Springboot配置文件

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

假设开发环境使用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

修改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;  } }

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

如何正确的使用Springboot配置文件

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

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

关于如何正确的使用Springboot配置文件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯