ApplicationListener <contextclosedevent>的注释版本和类似的接口</contextclosedevent>

时间:2014-03-20 20:36:27

标签: java spring cxf

您可以使用以下代码根据Web服务关闭(或刷新/启动)的时间执行某些事件。

public class APIService implements ApplicationListener<ContextClosedEvent>
{
    @Override
    public void onApplicationEvent(ContextClosedEvent contextClosedEvent) {
        //Do shutdown work.
    }
}

我被告知有一种注释驱动方式来执行此操作,不需要您实现此接口。具体来说,您应该能够使用您喜欢的任何名称定义一个函数并对其进行注释,以便它在服务启动或关闭时执行。

我在春季书籍或谷歌中找不到对此的引用。有人可以提供一个如何通过注释单独执行上述代码的示例吗?

2 个答案:

答案 0 :(得分:5)

the Spring 4+ documentation而言,没有与你描述的完全相同的功能。

您可以使用

模拟行为
@Component // defaults to eager initialization
class Setup {
    @Autowired
    private ApplicationContext context;

    @PostConstruct
    public void anyNameYouWant() {
        System.out.println("starting");
    }

    @PreDestroy
    public void hereToo() {
        System.out.println("closing");
    }
}

但您无法访问ContextClosedEvent,也无法访问ApplicationContextEvent的全部内容。

答案 1 :(得分:0)

在Spring 4.2 Here you go

中引入了

@EventListener