JAVA中三大框架SSH

1、MVC模式

      MVC模式其实就是model、view和controller,模型、视图、控制器。将业务逻辑、数据和界面显示分离的方法。简单的说就是利用MVC模式开发的程序,当改进页面显示的时候,不需要重写业务逻辑,最典型的mvc就是JSP+servlet+javabean的模式,JSP发送请求到web,web接收请求并匹配对应的servlet,servlet调用数据库dao层操作数据库,如果有数据传递,放到request中,返回给用户。


2、Struts

        Struts是一个按MVC模式设计的web层框架,其实就是一个actionServlet或者它的子类。我们在web.xml文件中将符合某种特征的所有请求交给这个servlet处理,然后这个servlet参照一个配置文件将各个请求封装成一个java类,然后分别分配给不同的action处理,这样的配置文件可以有多个。action执行完后用一个对象来表示,这个对象通过配置文件关联到某个jsp页面,jsp页面实现view部分。


3、struts2

        为什么把struts2单独分出来,是因为struts和struts2有很大的区别,所以不把他们放在一起介绍。

        struts2是在struts和webwork的技术基础上进行合并的框架,以webwork为核心,采用拦截器的机制来处理用户请求。客户端发出http请求,这个请求经过一系列过滤器后被filterDispatcher接收,然后filterDispatcher会询问actionMapper来决定是否调用action,若调用,则找到相应的action类,执行后返回结果。在调用action前后会涉及到相关的拦截器(常用拦截器:上传、重复提交、表单认证等)。


        struts与struts2的区别:

        (1)struts的前端控制器是一个servlet、struts2的前端控制器是一个filter。

        (2)struts1的action需要继承Action类,使用同一个Action实例,而struts2不用,分别使用独立的Action对象。

        (3)struts在校验的时候,要么都不校验,要么全部都要。struts2则可以只对某个方法进行校验。

        (4)struts2使用大量拦截器来处理用户请求, 使得用户的业务逻辑控制器与servlet API分离。


4、spring

        spring是一个轻量级的、控制反转(IoC)和面向切面(AOP)的容器框架。轻量:spring框架可以在一个大小只有1MB多的jar文件中发布,并且spring应用中的对象不依赖于spring的特定类。控制反转:spring通过一种称作控制反转的技术促进了松耦合,应用了IoC后,一个对象依赖的其它对象会通过被动的方式传递,而不是这个对象自己创建或者查找依赖(即容器在对象初始化的时候就主动将依赖传给它)。面向切面:spring允许通过分离应用的业务逻辑与系统级服务进行内聚性开发,应用对象只需要实现业务逻辑就可以了,并不负责系统级的关注点,例如日志。容器:spring包含并且管理应用对象的配置和生命周期。框架:spring可以将简单的组件配置、组合成复杂的应用,应用对象被声明式的组合(例如在一个xml文件中),提供基础功能,给开发者开发应用逻辑。

        spring的流程:分发请求,应用服务器会根据web应用中的web.xml文件定义的url映射到相应的请求分发到各个servlet中,然后servlet会根据相应的接口的实现类,调用方法,然后会返回mondelAndView,dispatcher查询一个或者多个viewResolver视图解析,找到指定视图对象,然后返回给客户端。


5、hibernate

        hibernate是一个开源的对象关系映射框架,对JDBC进行了轻量级的对象封装,使得开发人员可以用面对对象的编程思想来操作数据库,可以在客户端程序、web应用中使用。其核心接口有5个:session、sessionFactory、transaction、query以及configuration,可以对持久化对象进行存取,也可以进行事物控制。session负责执行被持久化对象的操作,包含了很多常见的sql语句,sessionFactory负责初始化hibernate,创建session对象,一般情况下每个数据库只需要一个sessionFactory,configuration负责配置并启动hibernate,创建sessionFactory对象,transaction负责事物的相关操作,query负责执行数据库查询。简单的说,hibernate就是提供开发者对数据库操作。

        hibernate流程:读取并解析配置文件,得到映射信息,创建sessionFactory,打开session,创建事物,对数据库进行操作,然后提交事物,关闭session,关闭sessionFactory。


6、myBatis

       这里额外介绍一下mybatis,因为近来使用mybatis的人也越来越多。

        mybatis支持定制化SQL、存储过程以及高级映射,它可以从简单的xml或者注解来配置和映射原生信息,将接口和java的对象映射成数据库中的记录。mybatis将SQL的配置信息加载成为一个个mappedStatement对象(包括了传入参数映射配置、执行的SQL语句,结果映射配置)存在内存中,当api接口层接收到调用请求的时候,会接收到ID和对象,根据ID查找到相应的MappedStatement,然后根据传入的对象对其进行解析,得到最终执行的SQL语句,得到最后的结果并返回。

        mybatis流程:加载配置文件并初始化、接收调用请求,寻找到对应的SQL、处理操作请求,执行数据库操作,返回结果。

你可能感兴趣的:(技术)