首先Spring会自动加载默认的配置文件,这个文件里定义的属性不需要单独的处理,可以直接加载;
获取的方式有很多
- 可以使用注解@Value直接获取
- Environment这个类的getProperty方法直接获取
- 当然也可以定义一个配置类,在类上加@PropertySource("classpath:xx.properties")
但是如果是自定义的Properties,又不想每次在上面加一个配置,代码就用改,我们就可以用下面这种方式
@Configuration
public class PropertiesUtil {
private static final ConcurrentHashMap<String,Object> propertyMap=new ConcurrentHashMap<>();
private static final ClassPathResource resource = new ClassPathResource("/my.properties");
@PostConstruct
public void init(){
try {
Properties prop = PropertiesLoaderUtils.loadProperties(resource);
prop.forEach((key, value) -> propertyMap.put((String) key, value));
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 通过key获取值
*/
public static Object getCustomizProperty(@NotNull String key){
return propertyMap.get(key);
}
}
自己去加载自定义配置文件。这样在使用的直接PropertiesUtil.getCustomizeProperty就好了;当然如果你不想添加配置后需要重新启动项目才生效的话,就再添加一个方法,定时刷新就好了。