美文网首页
关于Spring 与SpringMVC 、Struts2之间的区

关于Spring 与SpringMVC 、Struts2之间的区

作者: 周山 | 来源:发表于2018-10-23 21:26 被阅读0次

    Spring和Spring MVC 的关系

      首先,Spring是由Rod Johnson创建的一个开源的设计层面框架,解决的是业务逻辑层和其他各层的松耦合问题,在JAVA EE中,它将一些常用代码抽象成一个框架,而在框架里,又充满了各种设计模式的应用。我们知道Spring框架并未提供完整的持久层框架,正因如此,它可以和大多数的持久层框架进行整合,包括Mybatis(ssm)、hibernate(ssh)、TopLink甚至Struts2,JSF等MVC框架。所以很多人将Spring看做是一个中间层容器,它既可以向上与MVC框架整合,又可以向下与各种持久层整合。这也正是JAVA EE轻量级的主要表现。
      Spring MVC(模型(model)-视图(view)-控制器(controller))则是Spring框架提供的构建Web应用程序的全功能MVC模块,使用了MVC模式思想,一个模型对应多个视图,应用被分割为三层,模型的返回数据与显示逻辑分离,模型数据可以应用于多种显示技术。提供了应用的可扩展性。
      不得不说,Spring是一个通用解决方案, 最大的用处就是通过Ioc/AOP解耦, 降低软件复杂性, 所以Spring可以结合SpringMVC等很多其他解决方案一起使用, 不仅仅只适用于WEB开发。

    Spring与Struts2的比较

    Spring与Struts2的区别:
    简单说:
    1、Struts2就是一个拦截器栈 ,一系列的拦截器去处理用户的请求,OGNL的使用,表单验证 等。
    2、Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文。
    3、Struts2配置和验证过程比较繁琐,Struts2有以自己的interceptor机制,集成Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去。SpringMVC用的是独立的AOP方式。集成Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现。
    4、SpringMVC的入口是servlet,而Struts2是filter,servlet直接继承HttpServlet, 业务处理之前就可以进行控制,Servlet可直接进行处理并生成响应,filter还需要将处理结果发送给Servlet进行下一步处理。
      总的来说,SpringMVC,开发效率高,上手快获得了很多开发者青睐。Struts2作为基于POJO的Action的一款优秀的MVC Web框架也是深入开发人员之心。

    相关文章

      网友评论

          本文标题:关于Spring 与SpringMVC 、Struts2之间的区

          本文链接:https://www.haomeiwen.com/subject/ymtzzftx.html