使用 Spring MVC 在应用程序启动时执行 Java 类

2022-09-01 06:26:09

使用Spring MVC在应用程序启动时执行Java类的最佳方法是什么?


答案 1

不一定有“最佳”的方法。像往常一样,有很多方法可以做到这一点,“最好”是最适合您项目的任何方法:

  1. 使用 init-method=“...”在 XML 中的 bean 元素上,如 cjstehno 所提到的
  2. 实现Spring的初始化Bean接口。在 ApplicationContext 中部署时,将在创建 Bean 时调用 afterPropertiesSet() 方法。
  3. @PostConstruct在 Bean 上批注方法。同样,如果部署到 ApplicationContext,则在创建 Bean 时将调用带注释的方法。
  4. 如果您的 Bean 更像是要绑定到 Spring 生命周期中的基础结构 Bean,请实现 ApplicationListener<ContextRefreshedEvent>。onApplicationEvent(..) 方法将在 Spring 启动期间调用,您可以在其中执行所需的任何工作。

答案 2

假设您的上下文在启动时加载,请在您的spring应用程序上下文中使用XML配置中显式调用的init方法创建一个bean(或实现Springs InitializingBean)。如果您启用了延迟加载,则需要确保此 Bean 不是延迟的。

<bean name="starter" init-method="start" class="com.my.StarterBean" lazy="false" />

(请仔细检查文档中的参数)。

如果您的上下文在启动时未加载,则可以注册服务器上下文侦听器(Servlet API的一部分,而不是Spring)。


推荐