私のアプリケーションでは、アプリケーション全体で使用されるため、一部のデータを 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メソッドを使用してアイテムをサーブレットコンテキストに追加することです。
于 2012-07-02T16:18:25.960 に答える