hibernate中 ,使用createSQLQuery(sql)查询,在开启getHibernateTemplate().setCacheQueries(true);后,执行到query.list();报异常:java.lang.ArrayIndexOutOfBoundsException: 0
当把关闭缓存getHibernateTemplate().setCacheQueries(false)能正常返回。
原因估计是createSQLQuery返回的对象不受hibernate 管理,因此对其设置缓存失效。
5.Struts2+Spring+Junit单元测试
1.servlet线程安全吗 怎样避免?
Servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求。所以Servlet是线程不安全的。 有几种方法可以实现Servlet线程安全: 1,实现 SingleThreadModel 接口的servlet是线程安全的 2,用synchronized同步对共享数据的操作 3,避免使用实例变量 Servlet的优势在于多线程,高并发。第一种方法其实就是扼杀了其并发性能,所以不推荐在高并发的业务环境下使用。2.web启动线程
调用servlet的时候,启动线程就ok了
不要用listener,如果用了,tomcat启动就会加载,会提高tomcat内存用量
3.spring事务控制调用存储过程,存储过程中commit了还可以rollback吗?
commit后就不能rollback了
4.查询缓存是什么
通过SQL查询的话,是不会经过hibernate的缓存的
使用Junit对Struts+spring系统进行单元测试,好处是不用启动tomcat等容器。
简单实例代码如下:
Java工程师面试:监听器顺序与Servlet安全

这篇博客探讨了Java工程师在中兴面试中可能遇到的问题,包括Servlet线程安全性和避免方法,Spring事务控制与存储过程的交互,查询缓存的原理,以及Struts+Spring系统的单元测试。在单元测试中,使用StrutsSpringTestCase可以简化测试流程。此外,还讲解了Web应用中监听器的加载顺序,指出监听器、过滤器和Servlet的优先级顺序。
最低0.47元/天 解锁文章
1808

被折叠的 条评论
为什么被折叠?



