![]() | tech note |
| 自分をリファクタリング中。 |
Webアプリの起動時に何らかの初期化処理をしたい、といったことはよくあることです。
S2アプリでは、コンテナの初期化→コンテナから初期化用クラス取り出し→アプリの初期化、というのがスマートっぽい。
S2のバージョン=>2.4系 の前提。
public class MyContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent arg0) {
AppInitializer initializer
= (AppInitializer) SingletonS2ContainerFactory
.getContainer().getComponent(AppInitializer.class);
initializer.initialized();
}
・
・public interface AppInitializer {
void initialized();
void destroyed();
}public class MyAppInitializer implements AppInitializer {
@Override
public void initialized() {
//ここで初期化処理を行う
System.out.println("Application Initialized!!");
}
・
・
} ・
・
</filter-mapping>
<listener>
<listener-class>org.seasar.framework.container.servlet.
S2ContainerListener</listener-class>
</listener>
<listener>
<listener-class>xxx.yyy.MyContextListener</listener-class>
</listener>
<servlet>
・
・