1、使用spring自带的yaml解析工具:
<bean id="yamlMap" class="org.springframework.beans.factory.config.YamlMapFactoryBean">
<property name="resources">
<list>
<value>classpath:config/xxxx.yml</value>
</list>
</property>
<property name="resolutionMethod" value="FIRST_FOUND"/>
</bean>
public class YamlUtils {
private static final Logger logger = LogManager.getLogger(YamlUtils.class);
public static Map<String, Object> yaml2Map(String yamlSource) {
try {
YamlMapFactoryBean yaml = new YamlMapFactoryBean();
yaml.setResources(new ClassPathResource(yamlSource));
return yaml.getObject();
} catch (Exception e) {
logger.error("Cannot read yaml", e);
return null;
}
}
public static Properties yaml2Properties(String yamlSource) {
try {
YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
yaml.setResources(new ClassPathResource(yamlSource));
return yaml.getObject();
} catch (Exception e) {
logger.error("Cannot read yaml", e);
return null;
}
}
}
this.languages=(Map
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>1.17</version>
</dependency>
Yaml yaml = new Yaml();
LibraryPolicyDto libraryPolicyDto = yaml.loadAs(inputStream, LibraryPolicyDto.class);
打完收工。。。
附yaml文件:
systemLibraryId: 1
relativeLibraryId: xxx
readerPolicyIndex: 1
bookPolicyIndex: 1
otherPublicApi:
-
name: showApi
desc: 查看api
url: 127.0.0.1:8080/api/showApi
port: 8080
inputParams:
- id:int
- libraryId:String
outputParams:
- name:String
- desc:String
- url:String
- inputParams:String
- ouputParams:String
附LibraryPolicyDto
public class LibraryPolicyDto {
private int systemLibraryId;
private String relativeLibraryId;
private int readerPolicyIndex;
private int bookPolicyIndex;
private List<ApiDto> otherPublicApi;
//getter
//setter
}