ueseu 2008-08-14 10:01
浏览 345
已采纳

Spring在启动时,事件机制怎么时候可以使用?

希望在系统启动时,或启动后立即触发事件(即context.publishEvent(event))

但在InitializingBean的afterPropertiesSet方法和BeanPostProcessor的postProcessAfterInitialization方法里触发的事件仍然无效,请问该用什么样的方式触发事件呢?
[b]问题补充:[/b]
1, 实现ApplicationContextAware拿到ApplicationContext来触发事件;
2, 实现ApplicationListener接口来接收事件

但是在系统启动过程中,或启动后无法立即触发事件,或者说是触发事件无效。实现InitializingBean后,在afterPropertiesSet方法中触发,或在实现BeanPostProcessor后,在
postProcessAfterInitialization中触发,事件都无法传递到实现ApplicationListener的Bean中,

只是在系统加载完成后,事件可以正常触发(如在执行某个客户端的请求时,可以很正常地触发事件)

其实我就想在系统启动完成后再通过触发事件来初始化另外一些代码。
[b]问题补充:[/b]
感觉我的代码跟 小疯子 提供的代码没什么不一样,但我的事件在afterPropertiesSet里就是无法触发成功。

我再试试

  • 写回答

2条回答 默认 最新

  • iteye_14762 2008-08-15 16:39
    关注

    [code="java"]
    public class Tigger implements InitializingBean, ApplicationContextAware {

    private ApplicationContext applicationContext;
    
    public void afterPropertiesSet() throws Exception {
        this.applicationContext.publishEvent(new TiggerEvent(new Object()));
    }
    
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
    }
    

    }
    [/code]

    [code="java"]
    public class TiggerEvent extends ApplicationEvent {

    private String name = "fuxueliang";
    
    public String getName() {
        return name;
    }
    
    public TiggerEvent(Object source) {
        super(source);
    }
    

    }

    [/code]
    [code="java"]
    public class TiggerListener implements ApplicationListener {

    public void onApplicationEvent(ApplicationEvent event) {
        if (event instanceof TiggerEvent) {
            TiggerEvent tiggerEvent = (TiggerEvent) event;
            System.out.println("+++++++++++++" + tiggerEvent.getName() + "++++++++++++++++");
        }
    }
    

    }
    [/code]

    [code="java"]


    [/code]
    三块代码, 一个配置, 启动的时候, 就打出了:
    [code="java"]
    +++++++++++++fuxueliang++++++++++++++++
    [/code]
    不知道你是怎么实现的?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 pb数据库修改或者求完整pb库存系统,需为pb自带数据库
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路