PathMatchingResourcePatternResolver解析配置文件 资源文件

Posted 抓手

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PathMatchingResourcePatternResolver解析配置文件 资源文件相关的知识,希望对你有一定的参考价值。

使用方法:

ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
Resource resource = resourcePatternResolver.getResource("youResourcePath");

如果不是根路径,需要指定路径,例如:

 

从类路径的rules目录下获取demo.drl文件 

Resource resource = resourcePatternResolver .getResource("rules/demo.drl");

可以明确的指定classpath前缀:

Resource resource = resourcePatternResolver .getResource("classpath:rules/demo.drl");

使用通配符获取满足某种格式的文件

通过classpath*前缀指定从所有的类路径下获取指定的文件

Resource[] resource = resourcePatternResolver .getResource("classpath*:rules/demo.drl");

获取rules目录下前缀为demo的文件

Resource[] resource = resourcePatternResolver .getResource("classpath*:rules/demo*.drl");

 获取com.a.rules、com.b.rules、com.c.rules目录下的demo的文件

Resource[] resource = resourcePatternResolver .getResource("classpath*:com/*/rules/demo.drl");

  两个*表示任意多层的目录

Resource[] resource = resourcePatternResolver .getResource("classpath*:com/**/rules/demo.drl");

将读取的资源文件转换成字符串:
 

import org.apache.poi.util.IOUtils;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;

import java.io.IOException;

/**
 * @author 向振华
 * @date 2022/07/25 10:59
 */
public class ResourceUtils 

    /**
     * 读取配置文件并转换成字符串
     *
     * @param path 路径,eg: classpath:META-INF/xxx/spring.factories
     * @return
     */
    public static String read(String path) 
        ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
        Resource resource = resourcePatternResolver.getResource(path);
        try 
            byte[] bytes = IOUtils.toByteArray(resource.getInputStream());
            return new String(bytes);
         catch (IOException e) 
            return null;
        
    

以上是关于PathMatchingResourcePatternResolver解析配置文件 资源文件的主要内容,如果未能解决你的问题,请参考以下文章