开发者学堂课程【Java 面试疑难点串讲 3:开发工具及框架:SSH 新版整合的那些坑】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/26/detail/564
SSH 新版整合的那些坑
1、新版 SSH 的整合问题
2、SSH 开发框架整合已经在整个的行业之中流行了十多年了,同时在以后的很长一段时间之内依然有可能见到这样的架构,因为在整个 java 最盛行的那段时间里面,
SSH 出现有许多的项目,同时这许多的项目还有可能继续维护,所以如果你进行招聘的时候就有可能会发现公司所使用的技术可能有 SSM、SSH。
最初的 SSH 开发习惯都是基于 MyEclipse 进行的,因为当时的很多公司可以不去考虑盗版问题,但是随着 MyEclipse 不断的发布,以及破解的难度越来越高,许多的公司不得不放弃这款神奇框架而改用 Eclipse+Maven 开发形式,于是可以使用的 SSH 版本也出现了一些差异化。
本次讨论的问题以:
Spring 4.3.9 + Hibernate 52.9 + Strnuts2.5 版本,说一下这个整合可能存在的一些坑。
1、Hibernate:
考虑到每一次在进行数据转型的时候都采用了Query 完成(Object), 向下转型是有安全隐患的。
所以 Hibernate 追加了一个新的 Query 接口:
org.hibernate.query.Query,
这样的好处是可以方便的直接进行转换,做法有些类似于 MyBatis。
在使用 Query 接口更新的时候,对于更新的处理操作可以使用事务提交进行发出,习惯做法:
HibernateSessionFactory.getSession().beginTransaction().commit()
,但是这样的写法在更新的时候不能出现,也就是说你必须先取得 Transaction 对象,而后更新完毕后再利用此对象进行提交。
2、Struts2.x:
默认情况下考虑到安全问题,Struts 2.x 不再支持直接的分发处理操作了,采用“Action 名称!方法 .action”,不支持了,即便你开启了动态业务分发也无法使用了。
必须设置一个正则表达式的匹配符号后才可以开启分发处理,但是这样又可能出现安全问题。
Struts 2.x 的日志配置里面还需要使用一个 log4j2.xml 文件进行配置。