SSM框架和SSH框架的区佩

  SSH和SSM定义

  SSH 畅通日指的是 Struts2 做把持器(controller),spring 办各层的组件,hibernate 担负耐久募化层。

  SSM 则指的是 SpringMVC 做把持器(controller),Spring 办各层的组件,MyBatis 担负耐久募化层。

  壹道点:1.Spring依顶赖流入DI到来办各层的组件。2.运用面向切面编程AOP做事物、日记、权限等。

  不一点:1.Struts2 和 SpringMVC 把持器(controller)把持视图和模具的提交互机制的不一,

  Struts2是Action类级佩,SpringMVC是方法级佩,更轻善完成RESTful干风。

  SSH 和 SSM 的完成规律

  1.Struts2 的完成规律

  此雕刻边写图片描绘

  Struts2框架实行步儿子(Struts2运用Filter嵌入):

  1、客户端初始募化壹个指向Servlet容器(比如Tomcat)的央寻求

  2、此雕刻个央寻求经度过壹系列的度过滤器(Filter)(此雕刻些度过滤器中拥有壹个叫做ActionContextCleanUp的却选度过滤器,此雕刻个度过滤器关于Struts2和其他框架的集儿子成很拥有僚佐

  3、接着FilterDispatcher被调用,FilterDispatcher讯讯问ActionMapper到来决议此雕刻个央寻求能否需寻求调用某个Action

  4、假设ActionMapper决议需寻求调用某个Action,FilterDispatcher把央寻求的处理提交给ActionProxy

  5、ActionProxy经度过Configuration Manager讯讯问框架的配备文件,找到需寻求调用的Action类

  6、ActionProxy创立壹个ActionInvocation的实例。

  7、ActionInvocation实例运用命名花样到来调用,在调用Action的经过前后,触及到相干阻挡器(Intercepter)的调用。

  8、壹旦Action实行终了,ActionInvocation担负根据struts.xml中的配备找到对应的前往结实。前往结实畅通日是(但不尽是,也却 能是佩的的壹个Action链)壹个需寻求被体即兴的JSP容许FreeMarker的模版。

  9、将处理结实前往给客户端

  2.SpringMVC 的完成规律

  此雕刻边写图片描绘

  SpringMVC框架实行步儿子(SpringMVC运用Servlet嵌入):

  1、客户端收回壹个http央寻求给web效力动器,web效力动器对http央寻求终止松析,假设婚配DispatcherServlet的央寻求映照道路(在web.xml中指定),web容器将央寻求转提交给DispatcherServlet.

  2、DipatcherServlet接纳到此雕刻个央寻求之后将根据央寻求的信息(带拥有URL、Http方法、央寻求报文头和央寻求参数Cookie等)以及HandlerMapping的配备找各处理央寻求的处理器(Handler)。

  3-4、DispatcherServlet根据HandlerMapping找到对应的Handler,将处理权提交给Handler(Handler将详细的处理终止查封装),又由详细的HandlerAdapter对Handler终止详细的调用。

  5、Handler对数据处理完成以后将前往壹个ModelAndView()对象给DispatcherServlet。

  6、Handler前往的ModelAndView()条是壹个逻辑视图并不是壹个正式的视图,DispatcherSevlet经度过ViewResolver将逻辑视图转募化为真正的视图View。

  7、Dispatcher经度过model松析出产ModelAndView()中的参数终止松析终极展即兴出产完整顿的view并前往给客户端。

  Hibernate 和 MyBatis 两种ORM框架对比

  两者的相反点

  Hibernate与MyBatis邑却以是经度过SessionFactoryBuider由XML配备文件生成SessionFactory,然后由SessionFactory 生成Session,最末由Session到来开展实行事政和SQL语句子。就中SessionFactoryBuider,SessionFactory,Session的生命周期邑是差不多的。

  Hibernate和MyBatis邑顶持JDBC和JTA事政处理。

  两者各己优势

  MyBatis却以终止更为详细的SQL优募化,却以增添以查询字段。

  MyBatis轻善把握,而Hibernate门槛较高。

  Hibernate的DAO层开辟比MyBatis骈杂,Mybatis需寻求维养护SQL和结实映照。

  Hibernate对对象的维养护投缓和润放要比MyBatis好,对增改查的对象的维养护要便宜。

  Hibernate数据库移栽性很好,MyBatis的数据库移栽性不好,不一的数据库需寻求写不一SQL。

  Hibernate拥有更好的二级缓存放机制,却以运用第叁方缓存放。MyBatis本身供的缓存放机制不佳,花样翻新操干不能指定刷新指定记载,会清空整顿个表,条是也却以运用第叁方缓存放。

  Hibernate 查封装性好,遮藏挡了数据库差异,己触动生成SQL语句子,应对数据库变募化才干较绵软弱,SQL语句子优募化困苦。

  MyBatis但完成了SQL语句子和对象的映照,需寻求针对详细的数据库写SQL语句子,应对数据库变募化才干较强大,SQL语句子优募化较为便宜。

  尽结

  SSM和SSH不一首要在MVC完成方法,以及ORM耐久募化方面不一(Hiibernate与Mybatis)。SSM越到来越轻量级配备,将注松开辟发挥动到极致,且ORM完成更其敏捷,SQL优募化更信便;而SSH较注重配备开辟,就中的Hiibernate对JDBC的完整顿查封装更面向对象,对增改查的数据维养护更己触动募化,但SQL优募化方面较绵软弱,且入门门槛稍高。

  附Spring家族:

  此雕刻边写图片描绘

发表评论

电子邮件地址不会被公开。 必填项已用*标注

友情链接:

亚洲城 365bet ca88 bet36备用 澳门博彩