ResourcePatternUtils方式
源码
public abstract class ResourcePatternUtils {
public ResourcePatternUtils() {
}
public static boolean isUrl(@Nullable String resourceLocation) {
return resourceLocation != null && (resourceLocation.startsWith("classpath*:") || ResourceUtils.isUrl(resourceLocation));
}
public static ResourcePatternResolver getResourcePatternResolver(@Nullable ResourceLoader resourceLoader) {
if (resourceLoader instanceof ResourcePatternResolver) {
return (ResourcePatternResolver)resourceLoader;
} else {
return resourceLoader != null ? new PathMatchingResourcePatternResolver(resourceLoader) : new PathMatchingResourcePatternResolver();
}
}
}
一、指定参数ResourceLoader为null
package com.source.controller.ResourcePatternUtils;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternUtils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class ResourcePatternUtilsHandler {
public static String getResourceContent() throws IOException {
ResourcePatternResolver resolver = ResourcePatternUtils.getResourcePatternResolver(null);
Resource resource = resolver.getResource("test.properties");
InputStream inputStream = resource.getInputStream();
Properties properties = new Properties();
properties.load(inputStream);
return properties.toString();
}
}
二、指定参数ResourceLoader为DefaultResourceLoader对象
public static String getResourceContent2() throws IOException {
ResourcePatternResolver patternResolver = ResourcePatternUtils.getResourcePatternResolver(new DefaultResourceLoader());
Resource resource = patternResolver.getResource("test.properties");
InputStream inputStream = resource.getInputStream();
Properties properties = new Properties();
properties.load(inputStream);
System.out.println(properties.toString());
return properties.toString();
}
三、 指定参数ResourcePatternResolver的实现类为PathMatchingResourcePatternResolver
public static String getResourceContent3() throws IOException {
PathMatchingResourcePatternResolver patternResolver=new PathMatchingResourcePatternResolver();
ResourcePatternResolver resolver = ResourcePatternUtils.getResourcePatternResolver(patternResolver);
Resource resource = resolver.getResource("test.properties");
InputStream inputStream = resource.getInputStream();
Properties properties = new Properties();
properties.load(inputStream);
System.out.println(properties.toString());
return properties.toString();
}
PathMatchingResourcePatternResolver方式
源码
public PathMatchingResourcePatternResolver() {
this.resourceLoader = new DefaultResourceLoader();
}
public DefaultResourceLoader() {
this.classLoader = ClassUtils.getDefaultClassLoader();
}
public static ClassLoader getDefaultClassLoader() {
ClassLoader cl = null;
try {
cl = Thread.currentThread().getContextClassLoader();
} catch (Throwable var3) {
}
if (cl == null) {
cl = ClassUtils.class.getClassLoader();
if (cl == null) {
try {
cl = ClassLoader.getSystemClassLoader();
} catch (Throwable var2) {
}
}
}
return cl;
}
案例
public static String getResourceContent4() throws IOException {
PathMatchingResourcePatternResolver patternResolver=new PathMatchingResourcePatternResolver();
Resource resource = patternResolver.getResource("test.properties");
InputStream inputStream = resource.getInputStream();
Properties properties = new Properties();
properties.load(inputStream);
System.out.println(properties.toString());
return properties.toString();
}
DefaultResourceLoader方式
public static String getResourceContent5() throws IOException {
DefaultResourceLoader patternResolver=new DefaultResourceLoader();
Resource resource = patternResolver.getResource("test.properties");
InputStream inputStream = resource.getInputStream();
Properties properties = new Properties();
properties.load(inputStream);
System.out.println("方式555:"+properties.toString());
return properties.toString();
}
ClassLoader方式
public static String getResourceContent6() throws IOException {
ClassLoader classLoader = ResourcePatternUtilsHandler.class.getClassLoader();
InputStream inputStream = classLoader.getResourceAsStream("test.properties");
Properties properties = new Properties();
properties.load(inputStream);
System.out.println("方式666:"+properties.toString());
return properties.toString();
}