java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot yml文件读取自定义配置

SpringBoot中的yml文件中读取自定义配置信息及遇到问题小结

作者:MrDevil

这篇文章主要介绍了SpringBoot中的yml文件中读取自定义配置信息,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

开发中遇到的问题,百度的答案我都没有找到,去找大佬获取到的经验总结,这只是其中的一种方法,如果其他大佬有新的方法,可以分享分享。

一、非静态属性

1.1 yml文件

自定义配置信息,通过我们编写的代码读取。

image:
    path: E:\image  #存储文件的磁盘目录
    server: http://localhost:8082/image/ #文件访问基础路径

1.2 类

非静态属性中@Value生效

ps: 不是在控制层中拥有@Controller注解,说明没有把该类放进IOC容器中,启动类时会找不到@Value,在其他类中可以用@Component注解,将该类注册到IOC容器中,使得程序运行时,能够找得到。

@Value("${image.path}")
private String path;  // path = E:\image
//从配置文件中读取公共配置信息
@Value("${image.server}")
private String server;

二、 静态属性

2.1 yml文件

# 自定义二维码配置信息
qrcode:
  width: 600 # 二维码宽度
  height: 600 # 二维码高度

2.2 类

静态属性中@Value不生效

ps:使用@ConfigurationProperties注解来获取application.yml配置文件中的第一个属性名,接着只需要属性名和二级属性相同即可获取到。

// 想要在工具类的静态属性获取到application.yml配置文件内容的配置信息
// 1. 先加上注解
@Component // 注册到IOC容器
@ConfigurationProperties(prefix = "qrcode") // 获取到配置文件的属性
public class QRcodeUtil {
// 通过读取application.yml配置文件内容中的配置信息
//    @Value("${qrcode.width}")  // 再静态属性中@Value不生效
private static int width; //图形宽
 //    @Value("${qrcode.height}")
private static int height; //图形高
    // 3. 需要给属性值手动设置set方法
public void setWidth(int width) {
   QRcodeUtil.width = width;
}
public void setHeight(int height) {
   QRcodeUtil.height = height;
}

到此这篇关于SpringBoot中的yml文件中读取自定义配置信息的文章就介绍到这了,更多相关SpringBoot yml文件读取自定义配置信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文