ApplicationContext的事件机制&&让Bean获取Spring容器

ApplicationContext事件机制是观察者模式的实现。简单地说就是,一个类做出了改变,另一个监听类立马能够监听到,并做出相应的动作。

比如说客户端某各类做出了改变(比如说要求发送短信验证码),服务端的监听类立马做出相应,向客户手机发送一个验证码。

    用代码来说的话,Spring的容器事件有两个重要成员:
        ApplicationEvent类:容器事件,必须由ApplicationContext发布
        ApplicationListener接口:监听器,可有容器中的任何监听器Bean担任。

一个普通的Java类继承了ApplicationEvent类,就可以作为Spring的容器事件
而监听器类必须实现ApplicationListener接口,并实现onApplicationEvent()方法。事件容器发生任何事件,此方法都被触发。

而监听器类不需要像AWT那样采用编码变成,只需要像普通的Bean一样在xml配置文件配置一下就可以使用。



让Bean获取Spring容器

一般情况下我们都是先创建Spring容器,再调用Spring容器的getBean()方法来获取Spring容器中的Bean。

而当一些情况下,我们需要让Bean获取Spring容器的时候。比如我们的Bean需要有一个方法,但是该方法必须借助Spring才能实现。这时候就需要通过Bean来获取Spring了。

为了让Bean获取它所在的Spring容器,可以让该Bean实现BeanFactoryAware接口。同时实现该接口中的setBeanFactory(BeanFactory beanFactory)方法。

public class SpringTest6 implements ApplicationContextAware{
    ApplicationContex ctx;
    public void setBeanFactory(ApplicationContex applicationContext){
        this.applicationContext = applicationContext;
    }

    public void printHi(){
        System.out.println(ctx.getMessage());
    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值