SpringBoot-读取配置文件(工具类法)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 本文是关于Spring Boot框架下读取配置文件的指南。

本文是关于Spring Boot框架下读取配置文件的指南。该指南介绍了如何通过引入SnakeYaml包建立YamlUtil工具类,直接获取应用程序的yaml配置文件的配置信息。这种方法相对于使用@Value对象映射的方法,更加方便,封装性更好。下面将讲述详细流程,如有纰漏,敬请指正!欢迎评论区评论。

一、创建YamlUtil工具类

packagecom.util;
importorg.apache.log4j.Logger;
importorg.yaml.snakeyaml.Yaml;
importjava.io.InputStream;
importjava.util.Map;
publicclassYamlUtil {
privatestaticfinalLoggerlog=Logger.getLogger(YamlUtil.class);
privatestaticfinalStringYAML_FILE_PATH="application-dev.yml";
privatestaticMap<String, Object>yamlData;
static {
loadYamlData();
    }
privatestaticvoidloadYamlData() {
Yamlyaml=newYaml();
try (InputStreaminputStream=YamlUtil.class.getClassLoader().getResourceAsStream(YAML_FILE_PATH)) {
yamlData=yaml.load(inputStream);
        } catch (Exceptione) {
e.printStackTrace();
        }
    }
publicstaticStringgetString(Stringkey) {
Objectvalue=getProperty(key);
if (value!=null) {
returnvalue.toString();
        }
returnnull;
    }
privatestaticObjectgetProperty(Stringkey) {
String[] keys=key.split("\\.");
Objectvalue=yamlData;
for (Stringk : keys) {
if (valueinstanceofMap) {
value= ((Map<?, ?>) value).get(k);
            } else {
returnnull;
            }
        }
returnvalue;
    }
}

二、编写配置信息

我的配置信息如下:

application.yml

spring:  profiles:    active: dev
  thymeleaf:    view-names: /*
    cache: false    prefix: /WEB-INF/html

application-dev.yml

server:  port: 8080spring:  datasource:#替换成MySQL账户    username: root
#替换成MySQL密码    password: root
#替换成数据库名    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

三、使用工具类读取配置

Stringpath=YamlUtil.getString("output.file_path");

我们可以在控制台输出检查读取结果,这里读取的结果是output。本文是关于Spring Boot框架下读取配置文件的指南。该指南介绍了如何通过引入SnakeYaml包建立YamlUtil工具类,直接获取应用程序的yaml配置文件的配置信息。这种方法相对于使用@Value对象映射的方法,更加方便,封装性更好。下面将讲述详细流程,如有纰漏,敬请指正!欢迎评论区评论。

一、创建YamlUtil工具类

packagecom.util;
importorg.apache.log4j.Logger;
importorg.yaml.snakeyaml.Yaml;
importjava.io.InputStream;
importjava.util.Map;
publicclassYamlUtil {
privatestaticfinalLoggerlog=Logger.getLogger(YamlUtil.class);
privatestaticfinalStringYAML_FILE_PATH="application-dev.yml";
privatestaticMap<String, Object>yamlData;
static {
loadYamlData();
    }
privatestaticvoidloadYamlData() {
Yamlyaml=newYaml();
try (InputStreaminputStream=YamlUtil.class.getClassLoader().getResourceAsStream(YAML_FILE_PATH)) {
yamlData=yaml.load(inputStream);
        } catch (Exceptione) {
e.printStackTrace();
        }
    }
publicstaticStringgetString(Stringkey) {
Objectvalue=getProperty(key);
if (value!=null) {
returnvalue.toString();
        }
returnnull;
    }
privatestaticObjectgetProperty(Stringkey) {
String[] keys=key.split("\\.");
Objectvalue=yamlData;
for (Stringk : keys) {
if (valueinstanceofMap) {
value= ((Map<?, ?>) value).get(k);
            } else {
returnnull;
            }
        }
returnvalue;
    }
}

二、编写配置信息

我的配置信息如下:

application.yml

spring:  profiles:    active: dev
  thymeleaf:    view-names: /*
    cache: false    prefix: /WEB-INF/html

application-dev.yml

server:  port: 8080spring:  datasource:#替换成MySQL账户    username: root
#替换成MySQL密码    password: root
#替换成数据库名    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

三、使用工具类读取配置

Stringpath=YamlUtil.getString("output.file_path");

我们可以在控制台输出检查读取结果,这里读取的结果是output。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
Java 调度 Spring
SpringBoot实现多线程定时任务动态定时任务配置文件配置定时任务
SpringBoot实现多线程定时任务动态定时任务配置文件配置定时任务
666 0
|
7月前
|
Java 容器 Spring
SpringBoot:详解依赖注入和使用配置文件
SpringBoot:详解依赖注入和使用配置文件
172 0
|
5月前
|
Java Spring
Spring boot 运行服务jar外配置配置文件方式总结
Spring boot 运行服务jar外配置配置文件方式总结
961 0
|
17天前
|
Java 数据库连接 数据库
springboot启动配置文件-bootstrap.yml常用基本配置
以上是一些常用的基本配置项,在实际应用中可能会根据需求有所变化。通过合理配置 `bootstrap.yml`文件,可以确保应用程序在启动阶段加载正确的配置,并顺利启动运行。
42 2
|
29天前
|
Java Spring 容器
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、@Value读取配置信息
57 3
|
2月前
|
Java 测试技术 Spring
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
这篇文章介绍了Spring Boot中配置文件的语法、如何读取配置文件以及如何通过静态工具类读取配置文件。
69 0
springboot学习三:Spring Boot 配置文件语法、静态工具类读取配置文件、静态工具类读取配置文件
|
3月前
|
消息中间件 NoSQL 安全
(转)Spring Boot加载 不同位置的 application.properties配置文件顺序规则
这篇文章介绍了Spring Boot加载配置文件的顺序规则,包括不同位置的application.properties文件的加载优先级,以及如何通过命令行参数或环境变量来指定配置文件的名称和位置。
|
4月前
|
Java 测试技术 Spring
Java SpringBoot 加载 yml 配置文件中字典项
Java SpringBoot 加载 yml 配置文件中字典项
46 0
|
5月前
|
Java Spring
解析Spring Boot中的配置文件与外部化配置
解析Spring Boot中的配置文件与外部化配置
|
6月前
|
Java
SpringBoot配置-配置文件分类,server.port修改端口,自定义修改配置内容
SpringBoot配置-配置文件分类,server.port修改端口,自定义修改配置内容