将 Spring 任务计划添加到非 Spring 网络项目的侵入性最小的方法?

Least intrusive way to add Spring task scheduling to a non-Spring web project?

我应该如何将 Spring 任务调度添加到非 Spring war 项目?目前,web 项目只有 org.mitre.dsmiley.httpproxy:smiley-http-proxy-servlet 的 maven 依赖。现在它只是一个简单的代理 servlet。 SpringBoot 可能不太适合这个问题,因为我想将 war 工件保留为部署模型。我不想 运行 将它嵌入到一个独立的容器中。我正在寻找侵入性最小的方法。有什么建议吗?

如果您计划将应用程序部署到支持 Servlet 3.0 的服务器,那么使用 Spring 在传统的 war 部署模型中启动实际上非常容易。

您需要做的是:

  1. 扩展SpringBootServletInitializer,后者又实现了WebApplicationInitializer并可以配置servlet上下文。
  2. 在您的 pom.xml 中指定 war 包装(您可能已经拥有)
  3. 为 spring-boot-starter-tomcat 依赖项设置提供的范围,以便在您的应用程序运行时不会创建嵌入式服务器。

有关详细信息,请参阅 reference guide