在我的应用程序中,我想将我的一些数据存储在 ServletContext 中,因为它将在整个应用程序中使用。数据保存在数据库中。所有的配置都是通过整合struts2、spring、hibernate来完成的。问题是,我发现很难从数据库中获取数据。Spring 无法将 dao impl 类注入到实现 ServleltContextListener 的类中。谁能告诉我该怎么做?或者有其他选择吗?
问问题
2264 次
2 回答
4
试试这个
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
public class MyListener implements ServletContextListener
{
/**
* @see javax.servlet.ServletContextListener#contextInitialized
* (javax.servlet.ServletContextEvent)
*/
@Override
public void contextInitialized(ServletContextEvent sce)
{
WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext());
Object yourDaoImplClass = applicationContext.getBean("your_bean_name_or_bean_id");
//You can type cast yourDaoImplClass to your object
}
/**
* @see javax.servlet.ServletContextListener#contextDestroyed
* (javax.servlet.ServletContextEvent)
*/
@Override
public void contextDestroyed(ServletContextEvent sce)
{
}
}
希望这有效。让我知道事情的后续。
于 2012-07-02T11:58:53.497 回答
1
最好的方法是实现 Spring 的 ServletContextAware 接口,然后使用 @PostConstruct 或 afterPropertiesSet 方法将项目添加到 servlet 上下文。
于 2012-07-02T16:18:25.960 回答