五大框架

1 篇文章 0 订阅

①.MyBatis框架

一:基本概念
MyBatis是apache的一个开源项目 iBatis。2010年迁移到google code,并且改名为MyBatis。
MyBatis是一个基于Java的 持久层框架,是一种半自动化的ORM实现。ORM既对象/关系映射,是一种数据持久化技术,它在对象
模型和关系型数据库之间建立起对应关系,并且提供了一种机制,通过javaBean对象去操
作,同时 MyBatis 小巧,简单易学,封装性要低于Hibernate。

二:原理
mybatis是对jdbc的封装,它让数据库底层操作变的简单。
mybatis的三个基本要素:1.核心接口和类 2.MyBatis 核心配置文件 3.SQL映射文件(Mapper.xml)

( mybatis的操作都是围绕一个sqlSessionFactory实例为核心的,首先获取SqlSessionFactoryBuilder对象然后获取sqlSessionFactory对象。
mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。
在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。)

三:优点
1.mybatis作为持久层框架,其主要思想是将程序中的大量sql语句剥离出来,在配置文件中,实现SQL的灵活配置,
可以在不修改程序代码的情况下,直接在配置文件中修改SQL语句,这样降低了耦合度,也更加便于管理和维护。
2.mybatis相比于JDBC减少了代码量
3.mybatis支持编写SQL动态,支持对象与数据库的ORM字段关系映射。

四:缺点
1.sql 语句的编写工作量较大,对开发人员编写sql语句的功底有一定的要求。
2.sql 语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

②.Spring框架
一:基本概念
Spring是于2003年兴起的一个轻量级的Java开发框架,也是一个非常著名的轻量级的企业级开源框架,Spring 是完全面向接口的设计,降低程序耦合性,主要是事务控制并创建bean实例对象。在框架整合时,充当黏合剂的作用。

二:原理
Spring有两大核心 IOC和AOP
IOC的作用:IOC(Inversion of Control) 控制反转/依赖注入,又称DI(Dependency Injection) (依赖注入)产生对象实例,所以它是基于工厂设计模式的

所谓控制反转是指,本来被调用者的实例是由调用者来创建的,但是这样耦合性太强,
IOC则是统一交给Spring来管理创建,将对象交给容器,我们只需要在Spring配置文件中配置相应的的Bean和相关属性。

AOP 面向方面(切面)编程
AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面(切面)编程。
 注:OOP(Object-Oriented Programming ) 面向对象编程
好处在于代码的可重用。一旦涉及到该功能的需求发生变化,只要修改该代码就行

AOP 主要应用于日志记录,性能统计,安全控制,事务处理(项目中使用的)等方面。

Spring中实现:
在Spring中可以通过代理模式来实现AOP
代理模式分为
静态代理:一个接口,分别有一个真实实现和一个代理实现。
动态代理:通过代理类的代理,接口和实现类之间可以不直接发生联系,而 可以在运行期(Runtime)实现动态关联。

动态代理有两种实现方式,可以通过jdk的动态代理实现也可以通过cglib来实现,而AOP默认是通过jdk的动态代理来实现的。jdk的动态代理必须要有接口的支持,而cglib不需要,它是基于类的。

Spring AOP事务的实现:(有多种,看自己怎么配置)

在spring-common.xml配置文件中,首先定义一个BeanID事务管理,添加类DataSourceTransactionManager,在用property标签引入数据源dataSource,在定义标签tx:advice标签,在该标签对add* ,delete*,update等开头的方法进行配置事务的传播性,在定义aop:config表达式,对add ,delete*,update*等开头的方法进行事物的拦截,在引入tx:advice的BeanID(txAdvice)就可以了。

三:优点
1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于开发应用逻辑。
2.可以提供众多服务,比如:事务管理,WS等。
3.Spring 属于低入侵。

四:缺点
1.Spring不支持分布式
2.jsp中要写很多代码,控制器过于灵活,缺少一个公用的控制器。

③.SpringMVC框架

一:基本概念
SpringMVC 是Spring框架中用于Web应用开发的一个模块,Spring提供的一个基于MVC的设计模式,在MVC模式中,
SpringMVC相当于Controller层来负责模型与视图的数据交互。

二:原理
1.客户端发送请求到DispacherServlet(分发器)
2.由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller
3.Controller调用业务逻辑处理后,返回ModelAndView
4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图
5.视图负责将结果显示到客户端

三:优点
1.SpringMVC 在model,View 和Controller 方面提供了一个非常清晰的角色划分,搭建一个
松耦合,高重用性,高适合性的架构,他们各负其责,各司其责。
2.灵活的配置功能。
3.SpringMVC良好的扩展,减轻了开发者处理复杂问题的分担。

④.Hibernate框架
一:基本概念
Hibernate是一个优秀的持久化框架,很大程度降低了Dao层的编码工作。
Hibernate的性能非常好,因为他是一个轻量级框架,映射的灵活性非常出色,它支持各种数据库,从一对一到多对多的各种关系,也可以称为是一种对象关系映射框架
Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供面向对象的数据访问API。
持久化:将内存中的对象存储在关系型的数据库中。是将程序数据在持久状态和瞬时状态间的转换机制

二:原理
Hibernate是ORM解决方案,Hibernate在对象模型和关系型数据库的表之间建立了一座桥梁,可以直接使用API操作javaBean对象
进行增删改查等操作。

Hibernate核心API包括Configuratian,SessionFactory,Session,Transaction.
Hibernate是对JDBC的进一步封装,解决数据冗余。

三:优点
1.更加对象化,以对象化的思维操作数据库,我们只需要操作对象就可以。
2.移植性好。支持各种数据库,
3.缓存机制,一级,二级缓存
Hibernate一级缓存又称为“Session的缓存”,它是内置的。Hibernate二级缓存又称为“SessionFactory的缓存”,
第二级缓存是可选的,是一个可配置的插件,在默认情况下,SessionFactory不会启用这个插件。
4.Hibernate是一个没有侵入性的框架,所以我们也叫Hibernate是一个轻量级框架。

四:缺点
1.不合适以数据为中心大量使用存储过程的应用。
2.大规模的批量增删改查,不适合用Hibernate

⑤.Struts2框架

一:基本概念
Struts2是一个扩展性很强的框架,它由Struts1开发团队和WebWork团队共同开发的产品,本质上相当于servlet,Struts2 与SpringMVC一样 也是一个基于MVC设计模式的web应用框架。(建立模型与视图的数据交互)

二:原理
一.在Struts2框架中,控制器由两部份组成:
1.核心控制器(Filter):用于拦截用户请求,对请求进行处理。
2.业务控制器(Action):调用相应的Model类实现业务处理,返回结果。
二.Struts 2访问Servlet API对象
1.与servlet API 解耦的访问方式
《1》通过ActionContext类进行访问
使用ActionContext类获取Servlet API对象对应的Map对象
《2》Struts 2向Action注入
2.与servlet API 耦合的访问方式
《1》通过ServletActionContext类进行访问
得到HttpServletRequest对象,ServletContext对象,HttpServletResponse对象。
《2》Struts 2向Action注入

三.工作流程
(1)客户端提交请求

(2)请求被提交到一系列过滤器

(3)StrutsPrepareAndExecuteFilter(核心控制器)咨询ActionMapper是否需要调用某个Action来处理这个请求,StrutsPrepareAndExecuteFilter(核心控制器)则把请求的处理交给ActionProxy(代理对象)。

(4)ActionProxy通过询问配置文件,找到需要调用的Action类。

(5)ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action,但在调用之前,ActionInvocation会根据配置加载Action相关的所有拦截器

(6)Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result

这里简单讲述:
✔.Hibernate与mybatis框架比较

Hibernate与mybatis相比较,mybatis更为轻便、灵活,容易掌握,是一个半自动半的ORM 实现。mybatis可以把sql语句从Java代码中分离了出来,放在了配置文件中书写,大大降低里java代码与SQL语句的耦合度,更容易对sql语句操作,重要的是mybatis还可以书写动态的sql语句,但mybatis也存在一些缺陷,比如mybatis 的数据库的依赖,还有mybatis本身的缓存机制没有hibernate那么完善,hibernate除了本身有良好的缓存机制,还可以使用第三方缓存。Hibernate较完整的封装了JDBC,但学起来要比mybatis更困难一些。Hibernate的DAO层开发比MyBatis简单,可以通过内部的API 进行增,删,改等,对于对象的维护和缓存要比MyBatis好。

✔.SpringMvc与Struts2框架比较
SpringMvc和Struts2的区别:SpringMvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,参数的传递是直接注入到方法中的,是该方法独有的。
Struts2框架是类级别的拦截,每次请求就会创建一个Action,然后调用setter,getter
方法把request中的数据注入
Struts2 实际上是通过 setter getter 方法与request打交道的,Struts2中,一个
Action对象对应一个request上下文。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值