本文是关于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 /* cachefalse prefix /WEB-INF/html
application-dev.yml
server port8080spring 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 /* cachefalse prefix /WEB-INF/html
application-dev.yml
server port8080spring 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。