Spring应用手册-Aware接口

戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注

Aware接口

spring应用手册(第五部分)


Aware翻译过来是感知,意识到,获取到等等。在spring中有很多Aware接口,实现这些接口的Bean可以“感知”到对应的对象,当然其实是spring帮我们注入的。我们使用BeanNameAware接口来举例子,spring中所有的Aware接口信息的罗列参看后面的列表。

BeanNameAware接口主要是让我们的Bean感知到当前Bean在spirng容器中的name。

看看源码:

package org.springframework.beans.factory;

public interface BeanNameAware extends Aware {
    void setBeanName(String s);
}

我们会发现接口中有一个setBeanName的方法,我们的任何Bean实现了这个接口,就必须实现这个方法,spring就会通过这个方法帮我们注入当前Bean的beanName。

看案例:我们让我们的Bean实现接口BeanNameAware

/**
 * @author 戴着假发的程序员
 * @company http://www.boxuewa.com
 * @description
 */
public class MessageBean implements BeanNameAware {
    @Override
    public void setBeanName(String s) {
        System.out.println("MessageBean--spring传来的BeanName:"+s);
    }
}

创建spring容器我们就会发现控制台输出:
在这里插入图片描述
注意:所有的Aware接口中的set方法都是在容器创建对象之久直接注入的。这里需要你了解springBean的加载流程,spring会在实例化bean之后,执行所有的Aware接口中的set方法,进行对应的内容填充。

下面我们罗列一下spring的Aware接口:
ApplicationContextAware: 感知ApplicationContext对象。

ApplicationEventPublisherAware:封闭ApplicationContext的 Event 发布者。

BeanClassLoaderAware: Class loader 用于加载 bean classes。

BeanFactoryAware:声明BeanFactory

BeanNameAware: 声明 bean 的名称。

BootstrapContextAware:资源适配器BootstrapContext容器运行。通常仅在 JCA 感知ApplicationContext实例中可用。

LoadTimeWeaverAware:定义的 weaver 用于在 load time 处理 class 定义。

MessageSourceAware:用于解析消息的已配置策略(支持参数化和国际化)。

NotificationPublisherAware:Spring JMX 通知发布者

ResourceLoaderAware:配置加载程序以 low-level 访问资源。

ServletConfigAware:当前ServletConfig容器运行。仅在 web-aware Spring ApplicationContext中有效。

ServletContextAware:当前ServletContext容器运行。仅在 web-aware Spring ApplicationContext中有效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴着假发的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值