文档库 最新最全的文档下载
当前位置:文档库 › spring+struts+Hibernate面试题

spring+struts+Hibernate面试题

1.strust的。
Action是不是线程安全的?如果不是
有什么方式可以保证Action的线程安全?如果是,说明原因

回答:Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。
Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)

2.MVC,分析一下struts是如何实现MVC的
struts是用一组类,servlet 和jsp规范实现mvc的

3.struts中的几个关键对象的作用(说说几个关键对象的作用)
ActionFrom ActionServlet Action struts-config.xml

4.spring
说说AOP和IOC的概念以及在spring中是如何应用的
spring的核心就是IOC,通过指定对象的创建办法,描述对象与服务之间的关系,而不生成对象

5.Hibernate有哪几种查询数据的方式
3种,hql 条件查询() 原生sql

6.load()和get()的区别
load()方法认为该数据一定存在,可以放心的使用代理来延时加载 ,如果使用过程中发现了问题,就抛出异常;
get()方法一定要获取到真实的数据,否则返回null

---------------------------------------------------
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注入和构造方法注入提供支持。(详见https://www.wendangku.net/doc/c0433244.html,/articles/injection.html,以及https://www.wendangku.net/doc/c0433244.html,/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。(详见https://www.wendangku.net/doc/c0433244.html,/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中设置指定属性,用确定和。

相关文档