在ClassPathXmlApplicationContext中使用start方法

时间:2014-06-10 15:33:25

标签: java spring

我的团队项目中有以下代码:

this.context = new ClassPathXmlApplicationContext("test_spring.xml");       
this.task = ((Task)this.context.getBean("task"));
this.context.registerShutdownHook();
this.context.start();

我从未见过"开始"被调用的方法,我不明白是否需要启动方法?

Spring Documentation说:

Start this component. Should not throw an exception if the component is already running.
In the case of a container, this will propagate the start signal to all components that apply.

但我不明白它意味着什么。如果没有调用start方法或者它有什么帮助,有人可以解释会出现什么问题吗?

1 个答案:

答案 0 :(得分:0)

Spring提供了一个ApplicationListener接口来监听各种ApplicationEvent。其中一个事件是ContextStartedEvent。您可以创建一个实现ApplicationListener<ContextStartedEvent>的类的bean。

当您调用start()时,ApplicationContext将发布此类事件以及为ApplicationListener注册的所有ContextStartedEvent bean(如果在上下文中找到,则会自动注册)得到通知。

如果您不致电start(),他们将不会收到通知。