SpringBoot配置文件详解

简介: 本文目录1. 可以不用配置文件吗2. 配置文件格式3. 自定义配置项4. 指定对象绑定配置5. 在配置文件中使用随机数6. 自定义配置文件7. 引用配置项8. 总结

1. 可以不用配置文件吗

完全可以不用配置文件,直接启动就行,参数都是默认的。


就算用配置文件,这个配置文件跟Spring中那种繁琐的配置文件也完全不是一个概念。


SpringBoot的配置文件非常简单!今天就来聊聊。


2. 配置文件格式

SpringBoot支持两种配置文件.properties配置文件和.yml配置文件,虽然官方号称是推荐.yml配置文件,但是我实际看到的还是以.properties配置文件居多点。


这两种格式其实没有本质区别.properties文件使用.分割语义,而.yml文件使用缩进分割意义(有点像Python哈哈)。


所以我们只要掌握了一种配置,就可以翻译为另一种配置。例如配置项目启动端口。


# .properties文件配置方法


# .yml配置方法

server:

  port: 1007 #务必注意冒号后面要有个空格 不然不生效哈

,SpringBoot项目启动时加载的配置文件名默认为application.properties或application.yml,不建议老铁你同时建立这两个文件,纯属闲的没事找事。


TIPS SpringBoot2.x中可以使用server.servlet.context-path=/xxx配置项目的访问路径,而SpringBoot1.x中配置方法为server.context-path=/xxx,不知道为啥搞得不一样了,不向前兼容是很烦的一件事!


3. 自定义配置项

可以自定义一些配置项,然后在项目中直接使用,例如我们通常会习惯将微信公众号相关的参数放到配置文件中便于修改,而不是写死到代码中,每次修改还得重新编译程序。


# 配置端口

server.port=1007


# 公众号的appid

wxmp.appid=111

# 公众号的secret

wxmp.secret=222


然后注入到组件中,这样容器在启动时就可以将配置内容注入组件。


/**

* 微信公众号参数

*/

@Component//注册为组件

public class WxMpParam {

@Value("${wxmp.appid}")//注入wxmp.appid配置项

private String appid;

@Value("${wxmp.secret}")//注入wxmp.secret配置项

private String secret;

}


4. 指定对象绑定配置

如下同样生效,注意@Data不能省略


/**

* 微信公众号参数

*/

@Component//注册为组件

@EnableConfigurationProperties//启用配置绑定组件功能

@ConfigurationProperties(prefix="wxmp")//指定组件绑定的前缀

@Data//需要开启get/set,以便注入

public class WxMpParam {

private String appid;//自动匹配到wxmp.appid

private String secret;//自动匹配到wxmp.secret

}


5. 在配置文件中使用随机数

配置文件中使用随机数也是比较常见的场景,尤其启动多个客户端时,希望指定一个启动端口的范围,例如10-20,可配置如下:


# 配置端口为1-20间的随机数

server.port=${random.int[10,20]}


这样我可以连续启动四个客户端,启动端口分别为:12、13、17、19,可见是随机的,而且在我指定的范围内波动。


6. 自定义配置文件

有时候参数太多,都放到一个配置文件中太乱了,我们会希望将配置分到不同文件中,然后每个文件保存不同配置。


例如上面微信公众号配置,我们单独摘出来,放到wxmp.properties中。


# wxmp.properties


# 公众号的appid

wxmp.appid=111

# 公众号的secret

wxmp.secret=222


让我们在组件注入时代码如下:


/**

* 微信公众号参数

*/

@Component // 注册为组件

@PropertySource(value = "classpath:wxmp.properties", encoding = "utf-8") // 指定配置文件及编码

public class WxMpParam {

  @Value("${wxmp.appid}")

  private String appid;

  @Value("${wxmp.secret}")

  private String secret;

}


当然我们也可以结合绑定对象的语法,修改如下:


/**

* 微信公众号参数

*/

@Component//注册为组件

@EnableConfigurationProperties//启用配置绑定组件功能

@ConfigurationProperties(prefix="wxmp")//指定组件绑定的前缀

@PropertySource(value = "classpath:wxmp.properties", encoding = "utf-8") // 指定配置文件及编码

@Data//需要开启get/set,以便注入

public class WxMpParam {

private String appid;//自动匹配到wxmp.appid

private String secret;//自动匹配到wxmp.secret

}


7. 引用配置项

Spring Boot配置项是可以引用其他配置项的值的,这个稍微提一下,例如:


# wxmp.properties


# 公众号的appid

wxmp.appid=111

# 公众号的secret,值为111222

wxmp.secret=${wxmp.appid}222


8. 总结

配置少,就直接在application.properties写写就完了。


配置多,就分出几个配置文件来。


如果一个配置文件中配置项很多,也可以考虑让配置绑定对象,免得重复写前缀。


SpringBoot提供了足够灵活的配置文件使用机制,让我们灵活运用!

相关文章
|
5月前
|
XML 前端开发 Java
基于SpringBoot 3.3实现任意文件在线预览功能的技术分享
【8月更文挑战第30天】在当今的数字化办公环境中,文件在线预览已成为提升工作效率、优化用户体验的重要功能之一。无论是文档、图片、PDF还是代码文件,用户都期望能够直接在浏览器中快速查看而无需下载。本文将围绕如何在Spring Boot 3.3框架下实现这一功能,分享一系列技术干货,助力开发者高效构建文件预览服务。
451 2
|
2月前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
124 1
SpringBoot获取项目文件的绝对路径和相对路径
|
3月前
|
XML Java Kotlin
springboot + minio + kkfile实现文件预览
本文介绍了如何在容器中安装和启动kkfileviewer,并通过Spring Boot集成MinIO实现文件上传与预览功能。首先,通过下载kkfileviewer源码并构建Docker镜像来部署文件预览服务。接着,在Spring Boot项目中添加MinIO依赖,配置MinIO客户端,并实现文件上传与获取预览链接的接口。最后,通过测试验证文件上传和预览功能的正确性。
159 4
springboot + minio + kkfile实现文件预览
|
2月前
|
网络协议 Java
springboot配置hosts文件
springboot配置hosts文件
53 11
|
2月前
|
存储 前端开发 JavaScript
|
2月前
|
存储 Java API
|
3月前
|
easyexcel Java UED
SpringBoot中大量数据导出方案:使用EasyExcel并行导出多个excel文件并压缩zip后下载
在SpringBoot环境中,为了优化大量数据的Excel导出体验,可采用异步方式处理。具体做法是将数据拆分后利用`CompletableFuture`与`ThreadPoolTaskExecutor`并行导出,并使用EasyExcel生成多个Excel文件,最终将其压缩成ZIP文件供下载。此方案提升了导出效率,改善了用户体验。代码示例展示了如何实现这一过程,包括多线程处理、模板导出及资源清理等关键步骤。
|
3月前
|
消息中间件 Java 大数据
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
82 2
|
2月前
|
Java
SpringBoot获取文件将要上传的IP地址
SpringBoot获取文件将要上传的IP地址
38 0
|
3月前
|
Java 关系型数据库 数据库连接
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第3天】Spring Boot项目中数据库连接问题可能源于配置错误或依赖缺失。YAML配置文件的格式不正确,如缩进错误,会导致解析失败;而数据库驱动不匹配、连接字符串或认证信息错误同样引发连接异常。解决方法包括检查并修正YAML格式,确认配置属性无误,以及添加正确的数据库驱动依赖。利用日志记录和异常信息分析可辅助问题排查。
387 10

热门文章

最新文章