作者:一个萝卜一个坑 | 来源:互联网 | 2023-06-02 16:46
在一个基于Spring的web项目中,当我们需要在应用启动时加载数据字典时,可写一个监听实现javax.servlet.ServletContextListener实现其中的contextIn
在一个基于Spring的web项目中,当我们需要在应用启动时加载数据字典时,可写一个监听实现javax.servlet.ServletContextListener
实现其中的contextInitialized(ServletContextEvent sce) 方法完成,初始化的操作。代码示例如下
一、监听程序
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
public class InitDicListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
//spring 上下文
ApplicationContext appCOntext= WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
/*
ServiceBean bean1=appContext.getBean("xxx");
...业务方法,加载数据字典等。
*/
}
public void contextDestroyed(ServletContextEvent sce) {
}
}
二、配置文件中加入配置
在web.xml中加入 监听配置, 但要写在Spring配置的下面,这样我们自定义的监听会在Spring监听之后启动,这个时候在我们自定义的监听程序中能够得到Spring的上下文。
因为,当web.xml中有多个配置时,排在前面的先启动
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
listener>
<listener>
<listener-class>msdemo.listener.InitDicListenerlistener-class>
listener>
三、数据字典使用
程序中 通过 ServletContext的getAttribute(name) 方法来获得 字典数据
jsp页面中 ${name} 来使用。