- UrlResource:URL对应的资源,根据一个url即可以构建
- ClassPathResource:类路径下的资源
- FileSystemResource:获取文件系统下的资源
ServletContextResource:ServletContext封装的资源,用于访问ServletContext环境下的资源
-InputStreamResource:针对于输入流封装的资源
所有的ApplicationContext都实现了ResourceLoader接口,所以所有的ApplicationContext都能够获取资源的实例,如上图代码所示。
ApplicationContext获取了文件系统下的资源,类路径下的资源。、
举例如下:
MoocResource.java
public class MoocResource implements ApplicationContextAware {
private ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
this.applicationContext = applicationContext;
}
public void resource() throws IOException {
Resource resource = applicationContext.getResource("config.txt");
System.out.println(resource.getFilename());
System.out.println(resource.contentLength());
}
}
TestResource.java
@RunWith(BlockJUnit4ClassRunner.class)
public class TestResource extends UnitTestBase {
public TestResource() {
super("classpath:spring-resource.xml");
}
@Test
public void testResource() {
MoocResource resource = super.getBean("moocResource");
try {
resource.resource();
} catch (IOException e) {
e.printStackTrace();
}
}
}