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

Joh*_*0te 2 java spring cxf

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

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

有人告诉我,有一种注释驱动方式可以做到这一点,不需要你实现这个接口.具体来说,您应该能够使用您喜欢的任何名称定义函数并对其进行注释,以便在服务启动或关闭时执行.

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

Sot*_*lis 5

Spring 4+文档而言,没有与您描述的完全相同的功能.

您可以使用模拟行为

@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");
    }
}
Run Code Online (Sandbox Code Playgroud)

但你无法访问ContextClosedEvent,也无法获得全部的ApplicationContextEvents.