SSM框架是目较常用的框架之一,它的灵活性、安全性相对于SSH有一定的优势。这两套框架的不同,主要是持久层框架Hibernate和MyBatis的不同和控制层框架SpringMVC和Struts2的不同。

Hibernate和MyBatis的不同主要体现这么几点:

1.自动化和半自动化:Hibernate的SQL语句自动生成不需要程序员编写,而MyBatis需要编写。

 2.内容上:Hibernate入门比较难,而MyBatis入门非常容易。

 3.可移植性:Hibernate可移植性好,对应不同的数据库通过改变方言可以直接用,而MyBatis可移植性差,对应不同的数据库需要书写不同的SQL语句

 4.关系维护上:Hibernate映射关系复杂,而MyBatis相对简单。

 5.缓存:Hibernate有更好的二级缓存,可以使用第三方缓存,而MyBatis本身缓存就不好。

SpringMVC和Struts2的不同点如下:

1.入口不同:SpringMVC的入口是Servlet,Struts的入口是Filter。
 2.性能上:spring3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring3 mvc中,一个方法对应一个request上下文。而struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入;struts2实际上是通 setter getter方法与request打交道的;struts2中,一个Action对象对应一个request上下文。  

 3.拦截器实现机制上,Struts2有以自己的interceptor机制,SpringMVC用的是独立的AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。

 4. 设计思想上,Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展。
 5.SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。

 6.Spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高(当然Struts2也可以通过不同的目录结构和相关配置做到SpringMVC一样的效果,但是需要xml配置的地方不少)。