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

时间:2014-07-08 02:09:58

标签: java spring

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

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

我需要能够从webapp角度和JUnit测试中做到这一点。

1 个答案:

答案 0 :(得分:3)

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

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

你的听众的样子:

public class YourListener implements ServletContextListener {

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