1 Action是不是线程安全的?如果不是 有什么方式可以保证Action的线程安全?如果是,说明原因
不是
声明局部变量,或者扩展RequestProcessor,让每次都创建一个Action,或者在spring中用scope=”prototype”来管理

2.MVC,分析一下struts是如何实现MVC的
m:JavaBean 或结合 EJB 组件或者pojo构成
c:Action 来实现
v:一组 JSP 文件及其标签构成。

3.struts中的几个关键对象的作用(说说几个关键对象的作用)
Action:控制器类,ActionForm:表单对象,DynaValidatorForm:动态form,ActonMapping:配置文件中action节点的信息……

4.说说AOP和IOC的概念以及在spring中是如何应用的
AOP:面向方面编程,ioc:依赖注入;声明式事务和编程式事务积极一些通用部分

5.Hibernate有哪几种查询数据的方式
hql查询,sql查询,条件查询

6.load()和get()的区别
hibernate对于load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加
载,load默认支持延迟加载,在用到对象中的其他属性数据时才查询数据库,但是万一数据库中不存在该记录,只能抛异常
ObjectNotFoundEcception;所说的load方法抛异常是指在使用该对象的数据时,数据库中不存在该数据时抛异常,而不是在创建这个
对象时。由于session中的缓存对于hibernate来说是个相当廉价的资源,所以在load时会先查一下session缓存看看该id对应的对象
是否存在,不存在则创建代理(load时候之查询一级缓存,不存在则创建代理)。get()现在一级缓存找,没有就去二级缓存找,没有就去数据库找,没有
就返回null ;而对于get方法,hibernate一定要获取到真实的数据,否则返回null。

7.谈谈hibernate的延迟加载和openSessionInView
延迟加载要在session范围内,用到的时候再加载;opensessioninview是在web层写了一个
filter来打开和关闭session,这样就表示在一次request过程中session一直开着,保证了延迟
加载在session中的这个前提。

8.spring的事务有几种方式?谈谈spring事务的隔离级别和传播行为。
声明事务和编程事务
隔离级别:
- DEFAULT使用数据库默认的隔离级别
- READ_UNCOMMITTED会出现脏读,不可重复读和幻影读问题
- READ_COMMITTED会出现重复读和幻影读
- REPEATABLE_READ会出现幻影读
- SERIALIZABLE最安全,但是代价最大,性能影响极其严重
和传播行:
- REQUIRED存在事务就融入该事务,不存在就创建事务
- SUPPORTS存在事务就融入事务,不存在则不创建事务
- MANDATORY存在事务则融入该事务,不存在,抛异常
- REQUIRES_NEW总是创建新事务
- NOT_SUPPORTED存在事务则挂起,一直执行非事务操作
- NEVER总是执行非事务,如果当前存在事务则抛异常
- NESTED嵌入式事务

9.Hibernate中的update()和saveOrUpdate()的区别.
摘自hibernate说明文档:
saveOrUpdate()做下面的事:
如果对象已经在本session中持久化了,不做任何事
如果另一个与本session关联的对象拥有相同的持久化标识(identifier),抛出一个异常
如果对象没有持久化标识(identifier)属性,对其调用save()
如果对象的持久标识(identifier)表明其是一个新实例化的对象,对其调用save()
如果对象是附带版本信息的(通过 或 ) 并且版本属性的值表明其是一个新实例化的对象,save()它。 否则update() 这个对象
10.Spring对多种ORM框架提供了很好的支持,简单描述在Spring中使用Hibernate的方法,并结合事务管理。
getHiberanteTemplate里面提供了save,update,delete,find等方法。
简单说一个:如果配置了声明式事务,当执行getHibernateTemplate的各种方法的时候,事务会
自动被加载
如果没有配置事务,那么以上操作不会真正的被同步到数据库,除非配置了hibernate的
autocommit=true
8.spring的事务有几种方式?谈谈spring事务的隔离级别和传播行为。
spring事务分两种形式,声明式事务和编程式事务,spring提供了一个事务的接口
PaltformTractionManager接口,针对不同的事务,spring进行了不同的实现,对hibernate事务
的实现HIbernateTractionManager,对JDBC的JdbcTractionManager,
DataSourceTractionManager以及JdoTractionManager。接口platformTractionManager提供了三
个方法,获取事务,提交和回滚的方法。

最新文章

  1. AIX性能监控
  2. July 27th, Week 31st Wednesday, 2016
  3. Sublime Text 超好用的侧栏插件SideBarEnhancements
  4. 笔记一:Python的PyDev插件在eclipse上面安装(新的插件地址 location)
  5. springMVC(7)---表单标签
  6. Nginx服务器配置之location语法分析
  7. New UWP Community Toolkit - AdaptiveGridView
  8. SpringCloud(1)服务注册与发现Eureka
  9. Android常用的工具类SharedPreferences封装类SPUtils
  10. 湘潭邀请赛+蓝桥国赛总结暨ACM退役总结
  11. Delphi XE2 新增 System.Zip 单元, 可用一句话压缩整个文件夹了
  12. 关于一个常用的CheckBox样式
  13. Java 面试题 —— java 源码
  14. native.js 判断是否安装某app
  15. 在IDEA中使用gradle配置打可执行jar包[可执行jar与其所依赖的jar分离]
  16. 类的静态(Static)成员——字段
  17. [LeetCode] 627. Swap Salary_Easy tag: SQL
  18. Linux运维学习笔记-TCP三次握手和四次挥手
  19. Flask从入门到精通之数据模型之间的关系
  20. Winfrom Panel Scroll End 的实现

热门文章

  1. Rendering Problems: No Android SDK found. Please configure an Android SDK. 怎解决?
  2. java微信开发(wechat4j)——设置响应微信参数
  3. 关于IE处理margin和padding值超出父元素高度的问题
  4. RHEL7文件归档与压缩
  5. 常用 windows运行命令
  6. 错误:StrictMode $ AndroidBlockGuardPolicy.onNetwork
  7. WPF 自定义控件,在ViewModel里面获取自定义控件的值
  8. android基础开发之WebView
  9. Linux平台卸载MySQL总结【转】
  10. 使用MiniProfiler调试ASP.NET MVC网站性能