在ActionServlet初始化期间调用存储过程

时间:2012-10-05 22:03:29

标签: spring web-applications struts ibatis

在使用ibatis初始化ActionServlet [init()方法]期间是否可以调用存储过程?

1 个答案:

答案 0 :(得分:0)

是的,假设ibatis在ActionServlet.init执行之前被初始化,如果你在ServletContextListener中初始化它将会是这样。

但是,我会考虑您是否应该在ActionServlet.init的子类中进行应用程序初始化。我会在ServletContextListener的contextInitialized方法的实现中实现它。

克雷格·麦克拉纳汉(Craig McClanahan)2002年的一篇文章解释了为什么这是更好的做法:

“原因是servlet规范保证a servlet将被加载一次,然后在内存中保留整个生命周期 该应用程序,虽然原则上大多数容器都是大量的 请求的servlet。例如,容器完全合法 抛出Struts控制器servlet,然后再次重新初始化它, 在webapp的生命周期内,尽可能多次。

关于ServletContextListener的好处是你可以保证 contextInitialized()和contextDestroyed()仅在有时被调用 无论发生什么,你都需要它们(webapp启动和webapp关闭) 中间有servlet和JSP页面。但这仅适用于2.3 或更高版本的系统,其中添加了此API。“