您可以使用以下代码根据Web服务关闭(或刷新/启动)的时间执行某些事件。
public class APIService implements ApplicationListener<ContextClosedEvent>
{
@Override
public void onApplicationEvent(ContextClosedEvent contextClosedEvent) {
//Do shutdown work.
}
}
我被告知有一种注释驱动方式来执行此操作,不需要您实现此接口。具体来说,您应该能够使用您喜欢的任何名称定义一个函数并对其进行注释,以便它在服务启动或关闭时执行。
我在春季书籍或谷歌中找不到对此的引用。有人可以提供一个如何通过注释单独执行上述代码的示例吗?
答案 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)
@EventListener