java - 如何在Spring初始化之前启动一个类?

标签 java spring

有没有办法在Spring容器初始化之前执行一个类?

基本上,我有一些资源分散在构成我的应用程序的 jar 中。在应用程序的第一次执行时,它们不会出现在文件系统上,人们有时需要能够调整这些配置文件。所以...我希望能够将各个 jar 之外的所有这些资源复制到提取的目录结构中,以便可以轻松更改它们,而不是编辑它们并重新打包。到目前为止我已经实现了这一点。然而,我现在需要能够在 Spring 的容器初始化之前实际执行此操作,以便在 Spring 尝试初始化时它们出现。如何做到这一点?

我需要能够从 Web 应用程序的角度和 JUnit 测试中做到这一点。

最佳答案

使用 ServletContextListener:在 springservelt 之前将以下内容添加到 web.xml 中。

 <listener>
        <listener-class>your.full.className.YourListener</listener-class>
 </listener>

YourListener 的样子:

public class YourListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent evt) {
         //execute anything here.
    }
}

关于java - 如何在Spring初始化之前启动一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24622668/

相关文章:

java - 如何在 Jakarta-EE 项目中使用 @Resource 注入(inject) Tomcat 数据源?

spring - 如何用Spring测试服务器发送的事件?

java - Spring Data JPA 到深入而奇怪的映射

尝试显示 .jsp 时出现 Spring MVC tomcat 常量 404 错误

java - 我可以创建 spring mvc 自定义验证注释而不链接到 validator 实现吗

java - 异常处理方法未完成就退出

java - 如何为实例变量设置默认值?

java - 阻塞队列不是阻塞线程吗?

java - Stream.reduce() 与 Stream.parallel.reduce()

java - 在 Spring 表达式语言中处理空值