网站定制开发什么意思,沈阳妇科,wordpress本地转服务器,自定义图片wordpress项目中的配置文件用json方式存储在了resources下面的文件夹下面。如下#xff1a; 在代码里面需要将他们全部读出来。
但是ClassLoader.getResource 只能读取单个文件#xff0c;不能读取文件列表。然后就想到了 mybatis 同样也是要读配置文件列表#xff0c;就想看看 myba…项目中的配置文件用json方式存储在了resources下面的文件夹下面。如下 在代码里面需要将他们全部读出来。
但是ClassLoader.getResource 只能读取单个文件不能读取文件列表。然后就想到了 mybatis 同样也是要读配置文件列表就想看看 mybatis 是怎么做的。然后就找到了Spring 中的 ResourcePatternResolver 查看了这个类的代码可以完美解决加载文件列表的问题。
这个类会自动推测要读取的文件的位置比如在文件夹中还是在压缩包中还是在jar包中。这就很重要因为最开始是自己实现的扫描文件列表的功能ide中测试没有问题但是打包成jar包以后就读取不到了原因就在于ide测试的时候文件是在target编译目录下所以读取没有问题但是一旦打包成jar包就必须从jar包里面读取了就会读取不到。
代码如下
private static final ResourcePatternResolver resourceResolver new PathMatchingResourcePatternResolver();
private static final String CONFIG_FILE_PATH classpath:/device/*.json;private static void loadDeviceDefineList() {try {final Resource[] resources resourceResolver.getResources(CONFIG_FILE_PATH);for (Resource resource : resources) {// ...final ILinkDeviceFileDef bean loadDeviceFileDef(resource);}} catch (Exception e) {log.error(Cant load Resource : );}
}
运行结果如下