java 两次查询 中间数据变了 但是查出来的没有变化_「软帝学院」浅谈传说中的java“三大框架”...

a49cef9eee748f84fccf98a146f037b7.png

这次说框架,就多说一些有用的干货,来帮助大家更好的理解与学习框架!

三大框架的缘起:

一、spring

我们知道企业开发面临着一个让所有程序员都非常头疼的问题,那就是需求的不断变动,导致系统不停的修改。其中接口可以一定成度的解决服务间耦合度过高的问题,但是依然无法完全解耦。就比如说一个类A依赖于服务S,S的服务实现有s1,那么在A类中使用服务S时必然会有new s1的操作,这就出现了强耦合,假如S的服务实现有变化,需要改为s2,这个时候就需要修改类A里面的代码,这明显是不合理的。为什么不合理可以举个例子:电脑使用U盘1存储数据和使用U盘2存储数据,在更换不同的U盘时是不需要修改电脑硬件的。为了解决这个强耦合问题,spring出现了,spring通过XML配置文件来描述类之间的依赖关系,这里面配置文件只有类名之间的关系,运行时是需要创建类的实例的,所以spring是基于反射机制的。使用spring之后之前的问题中,类A就不会再去new服务S的实现了,而是将类A依赖的服务配置到XML中,由spring去管理类之间的依赖(由人控制转为系统控制,这也就是为什么说spring的技术核心是控制反转),这样之前的问题就完美解决了,服务S的实现变更了无非就是修改XML配置文件罢了,不需要到处去找new了s1的类。由于类A依赖的服务S的实现由spring控制,这样就可以做一些比较有趣的事情,比如说AOP,spring完全可以在获取s1的实例的时候生成s1类实例的代理类(通过ASM或CGLIB或着依赖于ASM的javassist或着java自带的动态代理),这样就可以实现对s1的方法级的调用“拦截”。因为spring的这种强大的解耦性,所以spring可以和任何一个框架进行完美集成。


二、Hibernate(我这里简称H)
java里面一切都是对象,在和数据库打交道时就不是那么“对象”了,往往数据库中的table和java里面的entity是有一个对应关系的,但是在将java的一个entity保存到数据库对应的表,这就需要一个将entity转换成sql的过程,这个过程是很繁杂而且易出错,于是有了Hibernate,使用H保存数据变得如此容易,H通过配置文件来描述类和表的映射关系,连类里面那种多对多和一对多等等关系都可以实现自动生成对多表的更新操作。但是H在做数据查询时就不是那么愉快了,往往我们只需要查询几个字段的时候,H查出来的会是一大坨的数据,所以H不是特别适合做企业项目,但是H非常适合做不同数据库间的同步。


三、struts
早起ajax技术没有出现的时候,前端向后台提交数据都是通过表单的,表单和java对象的互相转换问题也让很多程序员头疼不已,struts的出现解决了表单和java对象的互相转换问题,还有前端jsp的页面布局问题,访问等。在springmvc没有出现之前SSH算是一个比较完美的框架组合,但是由于H的坑,很多人转向了SSM,或者直接就是Springmvc+mybatis。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值