有没有办法在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/