码迷,mamicode.com
首页 > 其他好文 > 详细

002 aware专题

时间:2018-05-20 16:43:52      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:结合   常用   app   file   int   ace   获取   表示   resource   

一 . 概述

  在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注入到我们的组件之中.

 

002 aware专题

标签:结合   常用   app   file   int   ace   获取   表示   resource   

原文地址:https://www.cnblogs.com/trekxu/p/9063439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!