标签:source cat copy res 接口 标记 pre turn raw
一 . 概述
在spring之中,如果我们想要让我们的Bean之中拥有spring的组件,那么我们就可以使用aware接口帮助我们完成.
二 .aware接口
public interface Aware {
}
我们可以看到这是一个标记接口,在spring之中表示需要注入一个spring组件到具体的Bean之中.
如果一个Bean实现了一个具体的Aware的接口,就表示spring会帮助实现一个spring组件的注入功能.
三 .常用的Aware接口
public interface ApplicationContextAware extends Aware {
void setApplicationContext(ApplicationContext applicationContext) throws BeansException;
}
这个接口可以帮助我们注入一个ApplicationContext,就是一个IOC对象.
public interface ResourceLoaderAware extends Aware {
void setResourceLoader(ResourceLoader resourceLoader);
}
这个接口可以帮助我们获取一个资源加载器,结合上一节的内容,我们就可以创建一个加载资源的的万能对象了.
四 .使用一下Aware接口
Aware接口的使用基本都是一致的,我们这里简单演示一个就可以了.
public class ResourceUtils implements ResourceLoaderAware{
private ResourceLoader resourceLoader ;
@Override
public void setResourceLoader(ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
}
public Resource getResource(String location) {
return this.resourceLoader.getResource(location);
}
}
我们这个类就可以注入一个ResourceLoader对象.
配置类:
@Configuration
@Import(ResourceUtils.class)
public class Config {
}
测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes= {Config.class})
public class ConfigTest {
@Autowired
private ResourceUtils utils;
@Test
public void test() throws Exception {
Resource resource = utils.getResource("classpath:aa.txt");
System.out.println(new String(FileCopyUtils.copyToByteArray(resource.getInputStream())));
}
}
五 .总结
当我们需要spring之中的组件的时候,我们就可以使用Aware注入到我们的组件之中.
标签:source cat copy res 接口 标记 pre turn raw
原文地址:https://www.cnblogs.com/trekxu/p/9090886.html