该功能实现是在spring基础上的。
首先写一个监听器(该处我的类名为StartupListener),继承ContextLoaderListener,实现ServletContextListener接口。代码如下(找不到可以插入代码的编辑框,所以直接粘贴文本了,请见谅)
package com.GWJ.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.web.context.ContextLoaderListener;
import com.GWJ.util.GetHtmlComponent;
public class StartupListener extends ContextLoaderListener implements
ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
System.out.println(" StartupListener 初始化成功!");
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[] {
"applicationContext.xml"
});; //加载spring配置文件
//获得bean的实例
GetHtmlComponent getHtmlComponent = (GetHtmlComponent)applicationContext.getBean("GetHtmlComponent");//GetHtmlComponent是在spring中定义的一个bean,他实现了一些初始化的逻辑和操作数据库的动作,里面可以调用hibernate操作数据库
getHtmlComponent.getComponentValue(event.getServletContext());
System.out.println(" StartupListener 初始化结束!");
}
}
在web.xml中配置如下
<!-- 项目初始化各项参数 -->
<listener>
<listener-class >
com.GWJ.listener.StartupListener
</listener-class>
</listener>
现在只要每次启动tomcat或者项目重新部署之后都会执行一次StartupListener这个类里的方法
该功能我测试成功,而且还用在生产上,
测试环境:
jdk5.0,tomcat5.0,mysql5.0
spring2.0,hibernate3.0
如果有疑问请发Email到lgb020@qq.com