在网上着了很多这种例子,但都没有找到完整的代码,经过努力还是完成了这项功能,原创,仅供参考
步骤一:配置web.xml
在web.xml配置文件配置自定义的监听器,放在其他监听器配置后面 ,sysParamInit是包名,MyServletContextListener是类名,自定义的
<listener>
<listener-class>sysParamInit.MyServletContextListener</listener-class>
</listener>
步骤二:编写MyServletContextListener类,这个类需要实现ServletContextListener接口
MyServletContextListener.java
package sysParamInit;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.coffee.scm.entity.Sysparam;
import com.coffee.scm.service.ISysparamService;
public class MyServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
ApplicationContext aContext = WebApplicationContextUtils
.getRequiredWebApplicationContext(sce.getServletContext());
ISysparamService sysparamService = (ISysparamService) aContext
.getBean("sysparamService");//这是在spring.xml注入的,我是用的注解
List<Sysparam> sysList = new ArrayList<Sysparam>();
try {
sysList = sysparamService.selectSysparamList();
Map<String, Object> sysMap = new LinkedHashMap<String, Object>();
Map<String, Object> supTypeMap = new LinkedHashMap<String, Object>();
for (Sysparam sysparam : sysList) {
supTypeMap.put(sysparam.getSysParamValue(),
sysparam.getSysParamText());
}
sysMap.put("supType", supTypeMap);
// 将map放入application进行缓存,方便取,经常用
ServletContext application = sce.getServletContext();
application.setAttribute("sysMap", sysMap);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
}
SysparamService :
@Service
public class SysparamService implements ISysparamService {
@Autowired
private ISysparamDao sysparamDao;
@Override
public List<Sysparam> selectSysparamList() throws Exception {
return sysparamDao.selectSysparamList();
}
}
SysparamAction :
@Controller
public class SysparamAction {
@Resource(name = "sysparamService")
ISysparamService sysparamService;
}