Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据测试

【全栈最全Java框架总结】SSH、SSM、Springboot

本系列用来记录常用java框架的基本概念、区别及联系,也记录了在使用过程中,遇到的一些问题的解决方法,方便自己查看,也方便大家查阅。

欲速则不达,欲达则欲速!

JavaWeb视频教程(JSP/Servlet/上传/下载/分页/MVC/三层架构/Ajax)

一、SSH

1、基本概念

SSH框架是JAVA EE中三种框架所集成,分别是Struts,Spring,Hibernate框架所组成,是当前比较流行的java web开源框架。

集成SSH框架的系统从职责上分为(Struts2--控制;spring--解耦;hibernate--操作数据库),以帮助开发人员在短期内搭建结构清晰、可服用好、维护方便的web应用程序。使用Struts作为系统的整体基础框架,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用hibernate框架对持久层提供支持,spring做管理,管理Struts和hibernate。

2、Struts2

(1)基本概念

Struts2是一个基于MVC设计模式的web应用框架,相当于一个servlet,在MVC设计模式中,Struts2作为控制器(controller)来建立模型与视图的数据交互。Struts2在Struts1融合webwork。struts2以webwork为核心,采用拦截器的机制来处理用户的请求,这样的设计使得业务逻辑控制器能够与servletAPI完全脱离。

(2)Struts2框架的运行结构

解析:客户端发送请求(HttpServletRequest)到服务器,服务器接收到请求就先进入web.xml配置文件看看有没有配置过滤器,发现有有Struts2的过滤器,然后找到struts.xml配置文件,struts.xml配置文件里定义一个action,然后就去找到action类,此类继承ActionSupport接口,并且实现了execute()方法,返回一个字符串“success”给struts.xml配置文件,struts.xml配置文件的action会默认调用action类的execute()方法,result接收到返回的字符串,result就会调用你指定的jsp页面将结果呈现,最后响应给客户端。

(3)Struts2的优势

  • 实现了MVC模式,层次结构清晰,使程序员只需要关注业务逻辑的实现。
  • 丰富的标签库,大大提高了开发的效率。
  • Struts2提供丰富的拦截器实现。
  • 通过配置文件,就可以掌握整个系统各个部分之间的关系。
  • 异常处理机制,只需在配置文件中配置异常的映射,即可对异常做响应的处理。
  • Struts2的可扩展性高。
  • 面向切面编程的思想在Struts2中也有了很好的体现。
  • 体现了拦截器的使用,拦截器是一个一个的小功能模块,用户可以将这些拦截器合并成一个大的拦截器,这个合成的拦截器就像单独的拦截器一样,只要将它配置到一个Action中就可以。

(4)Struts2的缺点:

  • 校验较繁琐,多字段出错返回不同。
  • 安全性太低
  • 获取传参时较麻烦

2、Spring

(1)基本概念

spring是一个开源开发框架,是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

spring主要用来开发java应用,构建J2EE平台的web应用。其核心就是提供一种新的机制管理业务对象及其依赖关系。

(2)spring的流程图

解析:上面是在Struts结构图的基础上加入了spring流程图,在web.xml配置文件中加入了spring的监听器,在struts.xml配置文件中添加

“<constant name="struts.objectFactory" value="spring" />”

是告知Struts2运行时使用spring来管理对象,spring在其中主要做的就是注入实例,所有需要类的实例都由spring管理。

(3)spring的优点

  • 容器:spring是一个容器,包含并管理对象的生命周期和配置。可以配置每个bean如何被创建,基于一个可配置原型prototype,你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例。
  • 支持AOP:spring提供对AOP的支持,它允许将一些通用任务,如安全、事物、日志等进行集中式处理,从而提高了程序的复用性。
  • 轻量级框架:spring是轻量级框架,其基本的版本大约2M。
  • 控制反转:spring通过控制反转实现松耦合。对象们给他们依赖,而不是对象本身,方便解耦,简化开发。
  • 方便程序测试:spring提供了Junit4的支持,可以通过注解方便的测试spring程序。
  • 降低java EE API的使用难度:spring对java EE开发中非常难用的一些API(比如JDBC),都提供了封装,使这些API应用难度大大降低。
  • 方便集成各种优秀框架:spring内部提供了对各种优秀框架(如Struts、mybatis)的直接支持。
  • 支持声明式事务处理:只需要通过配置就可以完成对事务的管理,而无须手动编程。

(4)spring的缺点

  • 依赖反射,反射影响进程。
  • 太过于依赖设计模式。
  • 控制器过于灵活。
  • 不支持分布式应用。

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 漏桶算法的Java代码实现

下一篇: 35岁技术人如何转型做管理?阿里高级算法专家公开10大思考

精华推荐