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

本文涉及的产品
云数据库 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。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
Java Maven Spring
SpringBoot-读取配置文件(映射法)
本文是关于Spring Boot框架下读取配置文件的指南。该指南介绍了如何通过注解和属性文件来加载和访问应用程序的配置信息。Spring Boot提供了简单而强大的功能,可以轻松地加载各种类型的配置文件,并将其映射到Java对象中。通过使用@ConfigurationProperties注解,或者使用@Value注解从配置文件中读取属性值。
93 0
|
29天前
|
JSON Java 数据格式
SpringBoot配置文件属性注入
SpringBoot配置文件属性注入
24 0
|
2月前
|
前端开发 Java API
Springboot整合Swaggar最简单方法
Springboot整合Swaggar最简单方法
30 0
|
4月前
|
Java
SpringBoot 那些可以帮助你的内置工具类
SpringBoot 那些可以帮助你的内置工具类
18 0
|
9月前
|
Java
SpringBoot项目中一些常用的,工具类
SpringBoot项目中一些常用的,工具类
104 0
|
6月前
|
Java
SpringBoot手动获取Bean类
SpringBoot手动获取Bean类
|
7月前
|
XML Java 数据格式
springboot之@ImportResource:导入Spring配置文件~
springboot之@ImportResource:导入Spring配置文件~
Zp
|
Java
Springboot通过自定义工具类获取bean
Springboot通过自定义工具类获取bean
Zp
196 0
SpringBoot自定义拦截器
在springboot中有一个叫做ResourceProperties的类,里面就定义了静态资源的默认查找路径: 默认的静态资源路径为: • classpath:/META-INF/resources/ • classpath:/resources/ • classpath:/static/ • classpath:/public 在项目中创建路径进行测试 在static目录下创建index.html文件
|
前端开发 Java