详解Springboot配置文件的使用

作者:S_H-A_N 时间:2022-02-26 09:02:26 

如果使用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,可以看到输出了配置文件中配置的内容

详解Springboot配置文件的使用

二、使用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进行测试

详解Springboot配置文件的使用

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

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进行测试

详解Springboot配置文件的使用

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


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

以上所述是小编给大家介绍的详解Springboot配置文件的使用网站的支持!

来源:http://blog.csdn.net/lom9357bye/article/details/69697156

标签:spring,boot,配置文件
0
投稿

猜你喜欢

  • C#中数组、ArrayList、List、Dictionary的用法与区别浅析(存取数据)

    2021-05-27 03:55:49
  • Android GestureDetector用户手势检测实例讲解

    2022-12-28 17:24:46
  • 关于idea的gitignore文件编写及解决ignore文件不生效问题

    2023-02-28 02:04:13
  • Java实现数据库连接池的方法

    2023-11-28 08:57:30
  • Android实现调用摄像头拍照与视频功能

    2021-11-22 08:02:28
  • Mybatis如何实现InsertOrUpdate功能

    2022-10-11 10:26:58
  • Android的单位以及屏幕分辨率详解

    2022-12-28 18:13:23
  • SpringMVC Interceptor拦截器使用教程

    2022-05-11 02:17:22
  • Android中Handler引起的内存泄露问题解决办法

    2023-11-08 23:40:58
  • springboot为异步任务规划自定义线程池的实现

    2022-12-05 01:13:02
  • java中的Arrays这个工具类你真的会用吗(一文秒懂)

    2021-11-28 06:25:11
  • IntelliJ IDEA 2017.1.4 x64配置步骤(介绍)

    2022-02-25 13:48:48
  • C#自定义鼠标拖拽Drag&Drop效果之基本原理及基本实现代码

    2021-06-09 14:09:24
  • C#窗体实现酒店管理系统

    2023-05-23 18:58:47
  • Java之System.getProperty()的作用及使用说明

    2023-05-18 12:34:51
  • 老生常谈Java 网络编程 —— Socket 详解

    2023-07-12 16:32:54
  • Java实现的对称加密算法AES定义与用法详解

    2021-10-16 22:16:05
  • 一文带你了解Java中的函数式编程

    2022-08-02 07:32:29
  • android 网络编程之网络通信几种方式实例分享

    2022-01-05 14:23:39
  • Spring ApplicationListener监听器用法详解

    2022-08-21 00:00:08
  • asp之家 软件编程 m.aspxhome.com