yaml解析工具类(java)
发布时间:2025-05-25 02:43:30 发布人:远客网络
一、yaml解析工具类(java)
简介
这是基于snakeyaml实现的一个读取yaml配置的工具类.主要功能是获取指定层级之下的数据.
这是基于snakeyaml实现的一个读取yaml配置的工具类.主要功能是获取指定层级之下的数据.
我不知道当初为什么写这个类了,但是我知道,我要是不把他发出来我就是白写了?
支持获取指定层级之后的内容,并返回Map形式或Obj形式 new ConfigBean("指定文件").prefix("zdc.config").getMap()
new ConfigBean("指定文件").prefix("zdc.config").getObj()
支持获取指定层级之后的对象数据,并格式化为指定类,如"zdc.config": new ConfigBean("指定文件").prefix("zdc.config").getT(A.class)
支持获取list中指定数据,如"zdc.config.list.1": new ConfigBean().prefix("zdc.config.list.1").getObj()
支持获取list中指定数据之后的数据,如"zdc.config.map.1.name"
new ConfigBean().prefix("zdc.config.list.1").getString()
这个系列的文章,总体来说是一些杂乱的记录.
其中的内容可能是在之前某个需要的时候记录下来的,当时需要,当时很有用.
但是在后续更多的时间里,他被封禁到了小角落.
你看不看,他都在那里,他并非一无是处.
二、jar包能直接改yml文件需要重新打包吗
1、一般情况下,如果你想修改一个Java项目中的.yml文件,需要重新打包整个项目以使更改生效。.jar文件是Java应用程序的可执行文件,其中包含了项目的源代码、资源文件以及依赖的库文件等。
2、修改项目的配置文件(如.yml文件)通常需要修改项目的源代码,并重新编译和打包整个项目。这是因为.jar文件是一个打包好的可执行文件,它将项目的代码和资源文件打包成一个单独的文件,以便于在Java运行时环境中执行。
3、如果只是手动修改了.jar文件中的.yml文件,并没有重新编译和打包整个项目,那么修改将不会生效,因为Java运行时环境会继续使用原始的打包文件。
4、因此,如果你想修改项目的配置文件,最好的做法是修改源代码中的配置,然后重新编译和打包整个项目,生成一个新的.jar文件。这样,你的修改才能在运行时生效。
三、怎么动态给java注解参数赋值
动态赋值指的是在配置文件配置好然后在项目中动态读取?如果是这样的话:
1.在xml文件中使用<context:property-placeholder location="”/>
这种方式可以读取location指定位置对应的文件,引用的话使用${key}可以获取对应的数据
<bean class=“com.spring….config.PropertyPlaceholderConfigurer”>
<property name=“locations">
<array><value></value></array>
这种是用bean来加载配置文件,看起来更直观
这种方法也需要预先在xml文件中设定好配置文件的位置
<bean id=“prop” class=“org.springframework.beans.factory.config.PropertiesFactoryBean”>
<property name=“locations”>
<value>classpath:.properties</value>
之后在java代码里面可以用#{prop.key}来获取对应的数据prop是bean的名字,key是配置文件的键。
在springboot中,可以不需要xml文件来设置配置文件,在需要使用配置文件的类名字前加上
@PropertySource(“locations")就可以读取指定位置的配置,在代码中使用@Value注解可以获取这些数据
4.使用@ConfigurationProperties(prefix=“”)
SpringBoot项目有时候会使用application.yml来存储配置信息,一般情况下这些数据的存储格式是
这种嵌套方式,当然可以多层嵌套
在需要使用配置文件的类上面使用@ConfigurationProperties(prefix=“a”)可以获取a标签下一层所有的配置的键值对。