设为首页 加入收藏

TOP

一些Spring和Hibernate的面试题(附答案)
2014-11-07 12:30:04 来源: 作者: 【 】 浏览:29
Tags:一些 Spring Hibernate 试题 答案

1、 简述你对IoC(Inversion of Control)的理解,描述一下Spring中实现DI(Dependency Injection)的几种方式。


2、 Spring的Bean有多种作用域,包括:


singleton、prototype、request、session、global session、application、自定义


3、 简单描述Spring framework与Struts的不同之处,整合Spring与Struts有哪些方法,哪种最好,为什么?


4、 Hibernate中的update()和saveOrUpdate()的区别


5、 Spring对多种ORM框架提供了很好的支持,简单描述在Spring中使用Hibernate的方法,并结合事务管理。


答案:


1、好莱坞原则 不要打电话找我,我会打给你的。IoC将创建的职责从应用程序代码搬到了框架中。Spring对Setter注入和构造方法注入提供支持。(详见http://martinfowler.com/articles/injection.html,以及http: //www.redsaga.com/spring_ref/2.0/html/beans.html#beans-factory- collaborators)


2、 除application(详见Spring framework 2.0 Reference的3.4节bean的作用域)


3、 Spring是完整的一站式框架,而Struts仅是MVC框架,且着重于MVC中的C。Spring有三种方式整合Struts:使用 Spring 的 ActionSupport 类整合 Struts;使用 Spring 的 DelegatingRequestProcessor 覆盖 Struts 的 RequestProcessor;将 Struts Action 管理委托给 Spring 框架,动作委托最好。(详见使用Spring 更好地处理Struts 动作)


Spring 2.0新增一种方式:AutowiringRequestProcessor。(详见http://www.javaeye.com/topic/24239)


4、 saveOrUpdate()方法可以实现update()的功能,但会多些步骤,具体如下:


如果对象在该session中已经被持久化,不进行操作;


对象的标识符属性(identifier property)在数据库中不存在或者是个暂时的值,调用save()方法保存它;


如果session中的另一个对象有相同的标识符抛出一个异常;


以上皆不符合则调用update()更新之。


5、 在context中定义DataSource,创建SessionFactoy,设置参数;DAO类继承HibernateDaoSupport,实现具体接口,从中获得HibernateTemplate进行具体操作。


在使用中如果遇到OpenSessionInView的问题,可以添加OpenSessionInViewFilter或OpenSessionInViewInterceptor。(详见Spring framework 2.0 Reference的12.2节Hibernate)


声明式事务需声明事务管理器,在context中设置指定属性,用确定和。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇在Spring框架中如何更加高效的使.. 下一篇spring中的核心类有那些,各有什..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: