读书人

怎么在区分spring的IOC容器和spring M

发布时间: 2012-05-28 17:59:33 作者: rapoo

如何在区分spring的IOC容器和spring MVC的IOC容器的ContextRefreshedEvent?
现在需要监听IOC容器的加载完毕事件,继承了ApplicationListener,对ApplicationEvent的类型进行判断,如果是ContextRefreshedEvent就说明加载完毕。

但是实际使用时发现,项目中如果使用了Spring MVC,ContextRefreshedEvent会触发2次,1次是ApplicationContext.xml初始化完毕时,一次是mvc的IOC初始化容器完毕时,请问如何区分这2个事件?

[解决办法]
这两个不好区分 。 它确实会出发两次ContextRefreshedEvent事件,如果你想监听的方法不要重复执行两次 ,可以用一个boolean变量来控制 , 如下:

Java code
@Componentpublic class StartUpListener implements ApplicationListener<ApplicationEvent>{    public static boolean isStart = false;    @Override    public void onApplicationEvent(ApplicationEvent event) {        if(isStart)            return ;        System.err.println("容器启动............");        isStart = true ;    }} 

读书人网 >Java Web开发

热点推荐