zoukankan      html  css  js  c++  java
  • 五大框架 简单理解

    Spring MVC 框架

    Springmvc就是spring框架的一个模块,它是一个基于mvc设计思想的前端web层框架,主要作用就是对前端请求进行处理。

    完整答案

    Springmvc就是spring框架的一个模块,所以它可以和spring框架可以进行无缝整合,它是一个基于mvc设计思想的前端web框架,主要作用就是对前端请求进行处理。他的前端控制器是一个servlet.它的请求拦截是基于方法级别的.他的执行流程是
    Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成
    1. 客户端请求提交到DispatcherServlet
    2. 由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller
    3. DispatcherServlet将请求提交到Controller
    4. Controller调用业务逻辑处理后,返回ModelAndView
    5. DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图
    6. 视图负责将结果显示到客户端
    备注: 

    mvc指的就是Model(业务模型)、View(视图)、Controller(控制器)

     

    struts2框架

    Struts2,它是一个基于mvc设计思想的前端web层框架,主要作用就是对前端请求进行处理。他的核心是拦截器.但是他的前端控制器是一个过滤器
    完整答案

    Struts2,它是一个基于mvc设计思想的前端web层框架,主要作用就是对前端请求进行处理。他的核心是拦截器.但是他的前端控制器是一个过滤器. 它的请求拦截是基于类级别,OGNL也提供了在Struts2里访问各种作用域中的数据的简单方式.大大简化了获取数据的代码.

    struts2的执行流程是:
    A. 页面请求传递到后台, 首先进入Struts2 的核心过滤器 StrutsPrepareAndExecutedFilter .
    B. 请求进入到struts2 之后, 会根据请求的路径到 struts.xml 文件中根据 package的 namespace 属性 与 action 的 name 属性配置到请求处理的Action 类.
    C. 匹配到对应 Action 类的对应方法 , 执行该方法进行业务处理, 处理完毕之后会返回一个结果视图(字符串).
    D. 然后根据返回的结果视图 , 到struts.xml 中对应的Action的result结果集配置中 匹配 对应的视图页面(或action).
    E. 然后根据 result 的type属性, 转发(或重定向) 对应的页面(或action).
     
     
    SpringMVC和Struts2两个框架对比一下.

    注意:两个技术已经很多年了,技术非常成熟.用户群体很大.不能片面的用好与不好来说.只能说适合不适合.因为每个东西都有擅长和不擅长

     

    注意:说出几点即可
    1、springmvc入口是一个servlet前端控制器,struts2入口是一个filter过虑器。
    2、struts2通过在action类中定义成员变量接收请求参数,struts2只能使用多例模式管理action。
    springmvc通过在controller方法中定义形参接收请求参数,springmvc可以使用单例模式管理controller。
    3、springmvc是基于方法开发的,注解开发中使用requestMapping将url和方法进行映射,如果根据url找到controller类的方法生成一个Handler处理器对象(只包括一个method)。
    struts2是基于类开发,每个请求过来创建一个action实例,实例对象中有若干的方法。
    开发中建议使用springmvc,springmvc方法更类似service业务方法。
    4、Struts采用值栈存储请求和响应的数据,通过OGNL存取数据, springmvc通过参数绑定器是将request请求内容解析,并给方法形参赋值。
     

    说说你对spring框架的理解?他的作用是什么?

    Spring的核心有很多.其中比较主要也是我们常用的就是AOP,IOC,DI.也就是面向切面编程,控制反转,依赖注入.Spring一般是作为容器管理其他框架.例如常见的web层框架(struts2,springMVC)和持久成框架(mybatis,hibernate).一般都由spring来管理
    完整答案

        (1)AOP:面向切面编程,将跟业务逻辑没有关系的代码提取出来,在调用目标方法之前或者之后执行。常用的场景,事务,日志,权限控制,异常处理等方面。
        (2)IOC:创建对象的权利,交给spring容器创建。
        (3)DI:如果一个对象A需要使用另一个对象B才能实现某个功能,这时就可以说A对象依赖于B对象,而Spring容器在创建A对象时,会自动将A对象需要的B对象注入到A对象中,此过程就是依赖注入。
     
    核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
        Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。
        Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。
        Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。
        Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。
        Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
        Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。
     

    mybatis框架

    Mybatis是一个优秀的ORM框架.应用在持久层. 它对jdbc的 操作数据库过程 进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、等jdbc繁杂的过程代码.一般使用mapper代理的方式开发.直接在xml里面写sql(如果对hibernate了解.可以话题转向mybatis和hibernate的对比)
    完整答案

    Mybatis的工作流程
     
    1、  mybatis配置
    SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。
    mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。
    2、  通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂
    3、  由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession(DefaultSqlSession)进行。
    4、  mybatis底层自定义了Executor(BaseExecutor)执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。
    5、  Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。
    6、  Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过 Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。
    7、  Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过 Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。
     
     

    hibernate框架

    简要口述(如果感觉说的少可以在完整答案里面挑几条说)

    Hibernate是轻量级的持久层解决方案,是一个关系数据库ORM框架, 对JDBC访问数据库的代码做了封装.我们可以很容易的对数据库进行增删改查操作.
    完整答案

    hibernate查询方式
        (1)导航对象图检索方式。根据已经加载的对象,导航到其他对象。
        (2)OID检索方式。使用get或者load加载对应的对象
        (3)HQL检索方式。
        (4)QBC检索方式。
        (5)SQL检索方式。
    sql与hql的区别
        (1)sql是直接操作数据库的
        (2)hql是通过操作对象操作数据库,对大小写敏感。
    一级缓存和二级缓存的区别
        (1)一级缓存是session级别的缓存,二级缓存是sessionFactory级别的缓存。
    hibernate中get和load的区别?
        get和load都是根据id获取数据。
        (1)get先查询session中对应id是否有数据,如果有则直接返回,有查询数据库,如数据库中没有则返回为null;
        (2)load方式查询session中对应id是否有数据,如果没有生成代理对象,查询数据库。如没有对应的id则抛出异常
     

    Hibernate和mybatis对比

    简要口述(如果感觉说的少可以在完整答案里面挑几条说)

    注意:两个技术已经很多年了,技术非常成熟.用户群体很大.不能片面的用好与不好来说.只能说适合不适合.因为每个东西都有擅长和不擅长

    1. 在移植性方面hibernate配置一下方言即可.而一般情况下mybatis则需要修改sql语句
    2. hibernate是一个完全的ORM框架.完全的面向对象.更符合我们开发者的思维模式.mybatis需要我们手动写sql语句
    3. hibernate的优化成本比较高.因为hibernate的sql语句是自动生成的,所以在优化方面一般的新手无从下手.而mybatis只要修改sql就可以了.更加容易上手
    (如果对某一个框架非常了解.这里话锋可以转向具体的详细介绍某一个框架)

    来源:链接

  • 相关阅读:
    ubuntu切换中英文通用方法,ubuntu中文语言
    ubuntu安装ibus-goolepinyin通用方法
    ubuntu12.04 64位系统配置jdk1.6和jdk-6u20-linux-i586.bin下载地址
    ubuntu创建桌面快捷方式
    vim记住上次编辑和浏览位置
    ubuntu12.04安装tftp,配置,修改目录,错误类型
    Ubuntu 12.04 make menuconfig 出现 Unable to find the ncurses libraries or the required header files.
    nginx六 之Session共享
    nginx五 之高可用
    nginx四 之缓存模块
  • 原文地址:https://www.cnblogs.com/lucky1024/p/11126477.html
Copyright © 2011-2022 走看看