博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
011 aware
阅读量:5116 次
发布时间:2019-06-13

本文共 1565 字,大约阅读时间需要 5 分钟。

一 . 概述

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

 

转载于:https://www.cnblogs.com/trekxu/p/9090886.html

你可能感兴趣的文章
mac install brew
查看>>
环境部署(二):Linux下安装jenkins
查看>>
挑战练习14.8 删除crime 记录
查看>>
复制文件到U盘错误0x80071AC3,请运行chkdsk并重试
查看>>
duilib之源码分析
查看>>
G_M_C_美食节
查看>>
详细解读MySQL中的权限
查看>>
HDOJ 1698 Just a Hook(线段树成段更新)
查看>>
SQL Server 内存中OLTP内部机制概述(二)
查看>>
Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法
查看>>
php yii框架使用MongoDb
查看>>
cocos2dx中菜单menu 和 menuItem
查看>>
容器List之ArrayList详解
查看>>
GitHub的实现是否是基于此语言的支持网络编程性呢?
查看>>
四、java多线程核心技术——synchronized同步方法与synchronized同步快
查看>>
腾讯PHP工程师面试题两份
查看>>
训练1-U
查看>>
过去5年最受欢迎机器学习论文+代码速查
查看>>
AS3.0 XMLSocket简介
查看>>
列表边框column-rule
查看>>