详解Springboot配置文件的使用

网友投稿 327 2023-04-28


详解Springboot配置文件的使用

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

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

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

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

devconfig:

ip: 127.0.0.0

port: 8080

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

package com.examplXMemuXRue;

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值,并且自动完XMemuXRu成数据类型转换

// 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配置文件的使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java接口可以实现吗(java接口可以实现吗为什么)
下一篇:BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~