起因:
在做项目的过程中,我们一般都喜欢把常用的配置参数写在properties文件然后通过Properties类来加载并读取,为了使用方便一般会定义多个静态变量每个静态变量对应properties文件的value值。这种方式适用于properties文件比较少的情况下,如果配置文件比较多则该操作会很繁琐而且后续修改维护起来比较麻烦。最近在重构一个N年前的系统,发现里面有10几个这样的配置文件,实在写得烦了因此在想是不是可以做到每新增一个配置文件只需要把对应bean文件写好,程序就可以自动把配置文件的值set到对应的java bean?于是就有了这篇文章。
思路:
1.扫描properties文件
为了实现properties文件能自动注入对应的java bean文件那么第一步当然必须要扫描package目录下的所有.properties文件。实现方法至少有2种,1是通过JDK的getResource("/").getPath()来实现。2.是通过spring 的PathMatchingResourcePatternResolver来实现。在这里推荐用第2种,因为第1种在不同的jsp容器中有可能获取不到真实的class文件目录(weblogic)。
具体的实现代码为