package com.common.test.utils;
import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import java.util.Properties;
/**
* Created by admin on 2019/1/4.
*/
public class PropertiesUtils {
private static String PROPERTY_NAME = "application-common.yml";
public static Object getCommonYml(Object key){
Resource resource = new ClassPathResource(PROPERTY_NAME);
Properties properties = null;
try {
YamlPropertiesFactoryBean yamlFactory = new YamlPropertiesFactoryBean();
yamlFactory.setResources(resource);
properties = yamlFactory.getObject();
} catch (Exception e) {
e.printStackTrace();
return null;
}
return properties.get(key);
}
public static void main(String[] args) {
System.out.println(getCommonYml("file.upload.path"));
}
}
![配置文件位置](https://img-blog.csdnimg.cn/20190104163054284.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTcyMTA1Mg==,size_16,color_FFFFFF,t_70)
application.yml配置信息:
spring:
profiles:
include: jdbc,common
特别注意要将application-common.yml 加入到classpath 中去,不然可能读取不到文件,这边例子只是使用的classPath中加载配置,各位也可以从文件系统获取,具体还得看各自需要了,建议使用classPath加载。
2020年6月17日补充 这方法不太灵活,建议自己实现EnvironmentPostProcessor接口,将自己的配置文件写入到应用上下文中,后续可以直接使用@value注解获取到对应配置。具体实现可以看下官方文档: 官方文档
|