SpringBoot-读取配置文件(工具类法)
【摘要】 本文是关于Spring Boot框架下读取配置文件的指南。该指南介绍了如何通过引入SnakeYaml包建立YamlUtil工具类,直接获取应用程序的yaml配置文件的配置信息。这种方法相对于使用@Value对象映射的方法,更加方便,封装性更好。下面将讲述详细流程,如有纰漏,敬请指正!欢迎评论区评论。
本文介绍如何创建一个用于读取YAML配置文件的工具类,并展示如何通过该工具类访问配置信息。
一、创建YamlUtil工具类
为了更方便地管理和访问YAML配置文件中的数据,我们将创建一个YamlUtil
类。该类将负责加载YAML文件并提供方法来获取配置项的值。
Java 实现
package com.util;
import org.apache.log4j.Logger;
import org.yaml.snakeyaml.Yaml;
import java.io.InputStream;
import java.util.Map;
public class YamlUtil {
private static final Logger log = Logger.getLogger(YamlUtil.class);
private static final String YAML_FILE_PATH = "application-dev.yml";
private static Map<String, Object> yamlData;
static {
loadYamlData();
}
private static void loadYamlData() {
Yaml yaml = new Yaml();
try (InputStream inputStream = YamlUtil.class.getClassLoader().getResourceAsStream(YAML_FILE_PATH)) {
yamlData = yaml.load(inputStream);
} catch (Exception e) {
log.error("Failed to load YAML data", e);
}
}
public static String getString(String key) {
Object value = getProperty(key);
return value != null ? value.toString() : null;
}
private static Object getProperty(String key) {
String[] keys = key.split("\\.");
Object value = yamlData;
for (String k : keys) {
if (value instanceof Map) {
value = ((Map<?, ?>) value).get(k);
} else {
return null;
}
}
return value;
}
}
二、编写配置信息
在项目中配置文件通常包含各种环境的配置信息,如下所示:
application.yml
spring:
profiles:
active: dev
thymeleaf:
view-names: /*
cache: false
prefix: /WEB-INF/html
application-dev.yml
server:
port: 8080
spring:
datasource:
username: root # 替换成MySQL账户
password: root # 替换成MySQL密码
url: jdbc:mysql://localhost:3306/db_monitor?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.jdbc.Driver
application:
name: MonitorSystem ## 注册服务名
mybatis:
mapper-locations: classpath:mappers/*Mapper.xml
type-aliases-package: com.entity
logging:
level:
com:
example:
mapper: debug
output:
file_path: output
三、使用工具类读取配置
通过YamlUtil
工具类,我们可以轻松地读取配置信息。下面是如何使用该工具类来获取一个配置项的示例:
String path = YamlUtil.getString("output.file_path");
System.out.println("Output Path: " + path); // 在控制台输出检查读取结果
输出的结果应该是配置文件中指定的output
路径。
通过上述步骤,我们可以高效地管理和访问应用程序的配置,确保配置的灵活性和代码的可维护性。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)