我是靠谱客的博主 欣慰酸奶,最近开发中收集的这篇文章主要介绍SpringBoot学习之配置文件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Spring Boot 配置说明

Spring Boot 提供了对应用进行自动化配置。相比以前 XML 配置方式,很多显式方式申明是不需要的。二者,大多数默认的配置足够实现开发功能,从而更快速开发。

Spring Boot 推荐是无配置文件,可以不需要像之前一样,在 applicationContext.xml 里面配置一大堆的bean、aop以及和各种框架的整合了。虽然说 Spring Boot 已经做了好多默认的配置,但是根据不同的业务情况,Spring Boot 默认的配置肯定是无法满足的,所以 Spring Boot 提供了两种配置文件:application.propertiesapplication.yml 。放置在 src/main/resources 目录 或者类路径 /config 下。

注:如果你工程没有这个application.properties(或者 application.yml),那就在src/main/java/resources目录下新建一个。

配置说明

默认配置

Spring Boot 自带了一堆的配置默认配置,我们只需要修改其中的参数值就可以修改掉默认的配置了。

注意:在使用配置文件的时候,application.properties
application.yml 这两个文件只能出现一个,其中一个存在的时候,另外一个最好屏蔽掉,或者改个名字。

application.properties

# 程序访问的端口
server.port=6060
# 程序访问的工程名称
server.servlet.context-path=/study

application.yml

下面代码中 port 参数前面是两个空格,不是Tab键,这个需要特别注意下。

server:
port: 6061
servlet:
context-path: /study

修改了端口号

从上面的配置文件中可以看出:yaml 和 properties 的区别。传统我们使用的配置文件都是 properties,但是没有层级结构,yaml 就具有层级结构,表现的更加直观,清晰。两种都可以使用,可以根据开发习惯来选择哪种配置文件。

自定义属性配置

下面就是使用 application.properties 来说明
在配置文件中可以使用 ${属性}来拼接出组合的配置属性。也可以使用 ${random}来获取随机数。

config.flag=false
interface.url=127.0.0.1
interface.port=8080
interface.UrlPort=${interface.url}:${interface.port}
#获取随机int:${random.int}
#获取10以内的随机数:${random.int(10)}
#获取10-20的随机数:${random.int[10,20]}
#获取随机long:${random.long}
#获取随机uuid:${random.uuid}

使用 @Value 获取配置文件中的数据

新增代码,用于读取配置文件中的数据
ConfigController.java

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 用于读取配置文件
*/
@RestController
public class ConfigController {
// 读取配置文件的属性,可以使用 boolean 类型
@Value("${config.flag}")
private boolean flag;
@Value("${interface.url}")
private String url;
@RequestMapping("/config")
public String getConfig(@RequestParam(value="name", defaultValue="World") String name) {
return "读取到的配置文件内容为,标记字段值:" + this.flag + ", url 地址为:"+ this.url;
}
}

读取配置文件中的属性

使用 @ConfigurationProperties(prefix = “”) 获取配置文件中的数据

新增一个Bean文件:
ConfigRead.java

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* 用于读取配置文件
*/
@Component
@ConfigurationProperties(prefix = "interface")
public class ConfigRead {
private String url;
private String port;
private String UrlPort;
/*下面就是 getter 与 setter */
public String getUrl() { return url; }
public void setUrl(String url) { this.url = url; }
public String getPort() { return port; }
public void setPort(String port) { this.port = port; }
public String getUrlPort() { return UrlPort; }
public void setUrlPort(String urlPort) { UrlPort = urlPort; }
}

修改 ConfigController.java

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.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 用于读取配置文件
*
* @author wuq
* @create 2018-07-12 18:47
*/
@RestController
public class ConfigController {
@Autowired
ConfigRead configRead;
// 依赖注入配置文件读取类
// 读取配置文件的属性,可以使用 boolean 类型
@Value("${config.flag}")
private boolean flag;
@Value("${interface.url}")
private String url;
@RequestMapping("/config")
public String getConfig(@RequestParam(value="name", defaultValue="World") String name) {
return "读取到的配置文件内容为,标记字段值:" + configRead.getPort() + ", "+ configRead.getUrlPort() + "," + configRead.getUrl();
}
}

通过前缀读取配置文件

多环境配置

实际开发中可能会有不同的环境,有开发环境、测试环境、生成环境。对于每个环境相关配置都可能有所不同,如:数据库信息、端口配置、本地路径配置等

在application.properties同目录下新建一下三个文件:

application-dev.properties
//开发环境的配置文件
application-test.properties
//测试环境的配置文件
application-prod.properties
//生产环境的配置文件

修改 application.properties中的内容

# 引用开发的配置文件
spring.profiles.active=dev
# 引用测试的配置文件
#spring.profiles.active=test
# 引用生产的配置文件
#spring.profiles.active=prod

可以看出上面三个配置文件符合 application-{profile}.properties 格式,而在application.properties添加的 spring.profiles.active=dev 中的dev正是上面配置文件中的 profile。根据具体环境进行切换即刻。

程序的项目结构图
程序的项目结构图

yaml官网(本人觉得有点 Low):http://yaml.org/

yaml百度百科地址:https://baike.baidu.com/item/YAML/1067697?fr=aladdin

Spring Boot 官网上面的 yaml配置:https://docs.spring.io/spring-boot/docs/1.2.3.RELEASE/reference/html/boot-features-external-config.html#boot-features-external-config-yaml

spirng boot默认配置项(这个当做工具备查吧):https://blog.csdn.net/li396864285/article/details/78132034

最后

以上就是欣慰酸奶为你收集整理的SpringBoot学习之配置文件的全部内容,希望文章能够帮你解决SpringBoot学习之配置文件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部