Java五大框架(Struts,Spring,Hibernate,Spring MVC,Mybatis)

16 篇文章 0 订阅
5 篇文章 0 订阅

概述

记录下Java五大框架(Struts,Spring,Hibernate,Spring MVC,Mybatis)的学习笔记

五大框架:
MVC模式框架            控制层框架             数据持久层框架
Struts                Spring               Hibernate(重量级)         SSH开发模式
SpringMVC                                  MyBatis(轻量级)           SSM开发模式

Struts

  • 基于MVC设计模式的框架,每次请求都是一个类级别Action,都是一个Servlet

  • 控制器类继承 com.opensymphony.xwork2.ActionSupport 类重写execute() 方法,请求到对应Action类时,前台属性会注入到Action类的成员属性中,对应成员属性的值,在jsp页面也可以使用Struts的标签库访问到

  • web.xml文件中配置 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    拦截了所有的项目中的请求,进行对客户不同的请求行为的分发,分发给不同的控制器(action javabean),返回装饰页面

Spring MVC

  • 基于MVC设计模式的框架,类属Spring系列,可以很好的融合Spirng框架,不同于Struts每个类对应一个请求,它是方法级别的对应每个请求,更好的实现了 Resultful 风格

  • Spring MVC只有一个Servlet作为整个项目的请求的分发器,找到对应请求的类,方法对应的地址

  • 强大的前台视图解析器:framework,更好的处理青苔数据

  • 每个请求对应的方法,都可以设置注解,可以配置对应请求的多个地址信息,限定请求方式,请求的编码等,做更多样化处理。同时还可以根据注解配置,支持json数据自动传输,和接收json数据格式


Spring

  • Sping是一个轻量级的DI和AOP容器框架,DI:称作依赖注入(Dependency Injection),和控制反转一个概念,具体的讲,当一个角色需要另外一个角色协助的时候,在传统的程序设计中,通常有调用者来创建被调用者的实例。但是在spring中创建被调用者将不再有调用者完成,因此叫控制反转。创建被调用对象有Spring来完成,在容器实例化对象的时候主动的将被调用者(或者说它的依赖对象)注入给调用对象,因此又叫依赖注入。

  • AOP:Spring对面向切面编程提供了强有力的支持,通过它让我们将业务逻辑从应用服务(如事务管理)中分离出来,实现了高内聚开发,应用对象只关注业务逻辑,不再负责其它系统问题(如日志、事务等)。Spring支持用户自定义切面。

  • 容器:Spring是个容器,因为它包含并且管理应用对象的生命周期和配置。如对象的创建、销毁、回调等。

  • 框架:Spring作为一个框架,提供了一些基础功能,(如事务管理,持久层集成等),使开发人员更专注于开发应用逻辑。


Hibernate

  • Hibernate功能强大,数据库无关性好,O/R映射能力强, Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行

  • Hibernate的缺点就是学习门槛不低,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用 好Hibernate方面需要你的经验和能力都很强才行,但是Hibernate现在已经是主流O/R Mapping框架,从文档的丰富性,产品的完善性,版本的开发速度都要强于Mybatis

  • Hibernate 缓存机制:一级缓存 Session级别缓存 ,二级缓存 SessionFactory级别缓存


Mybatis

  • Mybatis入门简单, 即学即用,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美

  • 简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据 库修改。当系统属于二次开发,无法对数据库结构做到控制和修改,那iBATIS的灵活性将比Hibernate更适合。系统数据处理量巨大,性能要求极为 苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。在这种情况下iBATIS会有更好的可控性和表现。



【后续继续更新!】


参考文档:

Java 五大框架之间的对比
https://blog.csdn.net/xiaojiang_520/article/details/53368344?locationNum=14&fps=1
Java三大主流框架概述
https://blog.csdn.net/javaniuniu/article/details/71122669

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值