在ServletContextListener中使用Spring管理的bean
来源:互联网 发布:matlab 初始化零矩阵 编辑:程序博客网 时间:2024/06/03 12:25
package com.tang.back.web.listener;import java.util.List;import java.util.Map;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import org.springframework.web.context.WebApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;import com.tang.back.dto.sys.DictionaryDetail;import com.tang.back.impl.service.DictionaryServiceImpl;/** * 获取系统字典数据,缓存在Application中以提高页面初始化性能 * * @author tang * @see [相关类/方法](可选) * @since [产品/模块版本] (可选) */public class DataCacheListener implements ServletContextListener{ private final static String DICTIONARY_CACHE = "dictionary"; @Override public void contextInitialized(ServletContextEvent sce) { final WebApplicationContext springContext = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext()); // 关键代码 final DictionaryServiceImpl dictionaryService = (DictionaryServiceImpl)springContext.getBean("dictionaryService"); // 关键代码 ServletContext application = sce.getServletContext(); Map<String, List<DictionaryDetail>> dict = dictionaryService.getAllDictionary(); application.setAttribute(DICTIONARY_CACHE, dict); } @Override public void contextDestroyed(ServletContextEvent sce) { ServletContext application = sce.getServletContext(); application.removeAttribute(DICTIONARY_CACHE); } }
上面的解决方案来自于stackoverflow:http://stackoverflow.com/questions/4746041/spring-injecting-a-dependency-into-a-servletcontextlistener
这里是另一个获得赞同数最多的答案,没细研究,记录在这里。
@Autowired private Properties props;@Overridepublic void contextInitialized(ServletContextEvent sce) { WebApplicationContextUtils .getRequiredWebApplicationContext(sce.getServletContext()) .getAutowireCapableBeanFactory() .autowireBean(this); //Do something with props ...}
0 0
- 在ServletContextListener中使用Spring管理的bean
- 在自定义Listener中使用Spring容器管理的bean
- 如何在Listener(监听器)中使用spring容器管理的bean(自定义监听使用spring管理的bean)
- 在完全由Spring管理的环境中使用Spring的Context获取Bean实例
- ssh整合系列博客——(3)在jsp中如何使用spring管理的bean
- 如何在自定义Listener(监听器)中使用Spring容器管理的bean
- 如何在自定义Listener(监听器)中使用Spring容器管理的bean
- 如何在自定义Listener(监听器)中使用Spring容器管理的bean
- 如何在自定义Listener(监听器)中使用Spring容器管理的bean
- 如何在自定义Listener(监听器)中使用Spring容器管理的bean
- 如何在Listener(监听器)中使用spring容器管理的bean
- 在jsp页面中获取Spring管理的Bean
- 在servlet中获取spring管理的bean
- 如何在线程中获取spring 管理的bean
- 如何在线程中获取spring 管理的bean
- 如何在线程中获取spring 管理的bean
- 在Servlet中获取spring管理的bean
- Spring中Bean的管理及ApplicationContext的使用
- 整数除法还有这么一手,学习!
- 黑马程序员——基础加强---反射机制-认识Class类
- EditText 文本内容输入限制
- 第八周项目三:多分段函数求值2
- 基于web视频聊天技术归纳
- 在ServletContextListener中使用Spring管理的bean
- C++基础之详解this指针(有,或者没有,这不是个问题)
- [Python]Import: Using Non-Builtin Functions
- Ubuntu忘记root密码如何解决?
- 使用maven profile实现多环境可移植构建
- JS中的Math对象
- 调式子进程方法
- [安卓]2dx android font 相关问题*
- Android设计模式系列(1)--SDK源码之组合模式