`
DigitalSonic
  • 浏览: 215205 次
社区版块
存档分类
最新评论

自己出的几道关于Spring和Hibernate的面试题

阅读更多

很简单的题目,随便出着玩的,如果你是高手就请直接跳过,若有雷同,纯属巧合!

1、 简述你对IoC(Inversion of Control)的理解,描述一下Spring中实现DI(Dependency Injection)的几种方式。
2、Spring提倡面向接口编程,请讲一下你对它的理解,它有什么好处。
3、Spring的Bean有哪些作用域。
4、简单描述Spring Framework与Struts的不同之处,整合Spring与Struts有哪些方法,哪种最好,为什么?
5、Rails中大量使用Convention over Configuration的思想,SpringMVC在2.0后也引入了CoC,请简单描述一下SpringMVC的CoC。
6、Hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。
7、Spring对多种ORM框架提供了很好的支持,简单描述在Spring中使用Hibernate的方法,并结合事务管理。
8、简述Spring的事务传播行为和隔离级别。

 

答案:

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、在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。(详见http://deve.blogdriver.com/deve/415943.html

3、singleton、prototype、request、session、global session、自定义(详见Spring Framework 2.0 Reference的3.4节bean的作用域

4、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.iteye.com/topic/24239

5、控制器Bean以Controller结尾可直接映射为地址,模型ModelAndView可以不用指定键名,可根据URL自动取得视图名。(详见Spring Framework 2.0 Reference的13.11节惯例优先原则

6、saveOrUpdate()方法可以实现update()的功能,但会多些步骤,具体如下:
如果对象在该session中已经被持久化,不进行操作;
对象的标识符属性(identifier property)在数据库中不存在或者是个暂时的值,调用save()方法保存它;
如果session中的另一个对象有相同的标识符抛出一个异常;
以上皆不符合则调用update()更新之。

Session.load/get方法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象。其区别在于:
如果未能发现符合条件的记录,get方法返回null,而load方法会抛出一个ObjectNotFoundException;
load方法可返回实体的代理类实例,而get方法永远直接返回实体类;
load方法可以充分利用内部缓存和二级缓存中的现有数据,而get方法则仅仅在内部缓存中进行数据查找,如没有发现对应数据,将越过二级缓存,直接调用SQL完成数据读取。

7、在context中定义DataSource,创建SessionFactoy,设置参数;DAO类继承HibernateDaoSupport,实现具体接口,从中获得HibernateTemplate进行具体操作。在使用中如果遇到OpenSessionInView的问题,可以添加OpenSessionInViewFilter或OpenSessionInViewInterceptor。(详见Spring Framework 2.0 Reference的12.2节Hibernate
声明式事务需声明事务管理器,在context中设置<tx:advice>指定属性,用<aop:config>确定<aop:advisor>和<aop:pointcut>。(详见Spring Framework 2.0 Reference的9.5节声明式事务管理

8、传播行为分为六种:
PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。

隔离级别:
ISOLATION_DEFAULT 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.另外四个与JDBC的隔离级别相对应
ISOLATION_READ_UNCOMMITTED 这是事务最低的隔离级别,它充许别外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读。
ISOLATION_READ_COMMITTED 保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据。这种事务隔离级别可以避免脏读出现,但是可能会出现不可重复读和幻像读。
ISOLATION_REPEATABLE_READ 这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了避免下面的情况产生(不可重复读)。
ISOLATION_SERIALIZABLE 这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。除了防止脏读,不可重复读外,还避免了幻像读。

(详见http://www.iteye.com/topic/78674


(本文决定不定期更新,放些突然想到的,或者网上看到的相关题目,最后更新2008年3月10日。)

分享到:
评论

相关推荐

    最新Struts和Hibernate和Spring经典面试题

    Struts、Hibernate 和 Spring 经典面试题 以下是对 Struts、Hibernate 和 Spring 的经典面试题的总结,涵盖了这些框架的工作机制、优点、缓存机制、查询方式、优化方法等知识点。 Hibernate 1. Hibernate 工作...

    SSH(struts+spring+hibernate)面试题总结

    以下是对SSH面试题中涉及的一些核心知识点的详细解释: 1. **Hibernate 工作原理** Hibernate 的工作流程主要包括: - 读取`hibernate.cfg.xml`配置文件,创建`Configuration`实例,加载类映射信息。 - `...

    struts+spring+hibernate面试题

    在Java Web开发中,Struts、Spring和Hibernate是最常见的三大框架,它们...以上就是关于Struts、Spring和Hibernate面试题的详细解析,涵盖了这三大框架的关键概念和使用技巧,对于理解和解答相关面试问题非常有帮助。

    spring struts hibernate面试题

    【Spring Struts Hibernate面试题详解】 在面试中,关于SSH(Spring、Struts、Hibernate)的知识点通常是Java Web开发人员必须掌握的核心内容。下面将详细解释这些技术的关键特性和应用场景。 1. **MVC设计模式** ...

    关于Struts.Spring和Hibernate的面试题

    一些关于Struts.Spring和Hibernate的经典面试题

    Struts,Spring,Hibernate三大框架的面试&笔试题

    【面试&笔试题要点】 1. Hibernate的工作原理:涉及配置文件解析、SessionFactory创建、Session操作、事务管理和关闭流程。 2. Hibernate的使用理由:封装JDBC、简化DAO层、基于反射、性能优秀、支持多种关系。 3. ...

    struts2、spring、hibernate面试题集

    一、Hibernate面试题分析: 1. Hibernate是什么?它与JDBC有什么区别? Hibernate是一个对象关系映射(ORM)框架,它将数据库操作转化为对Java对象的操作,简化了数据访问。与JDBC相比,Hibernate提供了更高级别的...

    hibernate面试题2

    【hibernate面试题2】涉及了许多关于Hibernate框架的核心知识点,包括检索策略、SQL日志显示、缓存策略以及Hibernate与其他技术(如Spring和Struts)的整合。下面将逐一详细解析这些概念。 1. **Hibernate检索策略*...

    spring struts Hibernate面试题

    在IT行业中,Spring、Struts和Hibernate是三个非常重要的Java框架,它们构成了经典的MVC(Model-View-Controller)架构,常用于企业级应用开发。面试时,掌握这些框架的基本概念、工作原理以及如何整合使用是非常...

    J2EE面试题(包含了大部分的框架面试题如:hibernate Spring Strust 等)

    本资源主要关注的是J2EE相关的面试题目,特别是与三大主流框架——Hibernate、Spring和Struts紧密相关的部分。这些框架在现代企业级应用开发中占据了核心地位,理解并掌握它们是成为合格J2EE开发者的关键。 ...

    struts+spring+hibernate面试题.doc

    标题和描述指向的是一个关于Struts、Spring和Hibernate技术栈的面试题集合,这份文档旨在帮助准备面试的软件工程师理解并复习这些关键技术点。以下是基于给定内容的关键知识点的详细阐述: ### 1. Action的线程安全...

    Struts_Spring_Hibernate面试题总结

    这篇面试题总结主要涉及Servlet的基础知识,包括其生命周期、工作原理以及与Struts、Spring、Hibernate的关系。 1. Servlet生命周期: - 初始化阶段:Servlet容器在接收到web应用部署描述符(web.xml)中的`...

    struts spring hibernate面试题

    ### Struts、Spring、Hibernate 面试题详解 #### 1. Action 是否线程安全?如果不是,如何保证 Action 的线程安全? - **答案**:通常情况下,Struts 的 Action 不是线程安全的。因为同一个 Action 实例可能会被多...

    struct spring hibernate面试题

    以上就是关于Spring、Hibernate与Struts框架面试题的详细解答,希望能够帮助到正在准备面试的读者们。这些框架在实际开发中非常常见,掌握它们不仅可以提高面试成功率,也能让自己的开发工作更加得心应手。

    struts,spring,hibernate面试题

    Struts、Spring、Hibernate是Java开发中常用的三大框架,它们分别负责不同的职责。Struts作为MVC模式的实现,主要用于处理Web应用中的业务逻辑;Spring则是一个全面的后端解决方案,提供依赖注入、AOP(面向切面编程...

    spring+hibernate+struts企业面试题(精华)

    以下是针对这三个框架的一些核心知识点和常考面试题的详解: **Spring框架:** 1. **IoC(Inversion of Control)与DI(Dependency Injection)**:Spring的核心特性,控制反转使得对象的创建和依赖关系由容器管理...

    收集的struts+spring+hibernate面试题.doc

    ### Struts + Spring + Hibernate 面试题解析 #### 1. AOP 和 IOC 的概念以及在 Spring 中的应用 **AOP(Aspect Oriented Programming,面向切面编程)**: 是一种编程思想,它允许程序员定义“切面”来封装那些...

    java面试题,J2EE面试题 笔试题

    最全的j2EE面试题,题量大、经典,是我面试的整理试题 1、java笔试题大集合 2、各个公司面试题 3、J2EE初学者面试题 4、J2EE面试题(打码查错题...14、Strut+Spring+Hibernate面试题 15、张孝祥整理Java就业面试题大全

    Struts Spring Hibernate面试题汇总

    【SSH面试题汇总】主要涉及的是Struts、Spring和Hibernate这三个流行Java EE框架的相关知识,以及MVC设计模式的理解。MVC(Model-View-Controller)模式是软件工程中的一种架构模式,它将应用程序分为三个核心组件:...

Global site tag (gtag.js) - Google Analytics