spring框架的总结

1.什么是spring框架?
答:spring框架是一个开源框架,为了简化企业级应用开发的复杂性而创建的,spring框架得主要优势是其分层架构,分层架构允许使用者选择使用那一个组件,同时为J2EE应用程序开发提供集成的框架。

Spring的核心是 控制反转 和 依赖注入
1.1什么是控制反转?
答:传统Java模式中,当我们要使用一个对象时,我们会自己使用new 或者 getInstance 等直接或者间接的调用构造方法创建一个对象,而在spring模式中,spring容器使用了工厂模式为我们创建了所需要的对象,我们使用时不需要自己去创建,直接调用spring为我们创建的对象即可,这就是控制反转的思想。
实例化一个对象有三种方式:使用类构造器,使用静态工厂方法,使用示例工厂方法,当使用spring框架时我们就需要关心通过那一种方式去实例化对象,spring通过控制反转机制自动为我们实例化一个对象。
1.2什么是依赖注入?
Spring在2.5版本以后开始支持用注解的方式来配置依赖注入。
答:spring使用Java bean 对象的set方法或者带有参数的构造方法为我们在创建所需对象时将其属性自动设置所需要的值的过程就是依赖注入的思想。

依赖注入是控制反转的基础

1.3什么是面向切面编程?
答:通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

1.4spring配置到应用开发中有几种方式?
答:三种,分别是:基于XML的配置 基于注解的配置 基于Java的配置

2.Spring框架的优点?
答:① 方便解耦,简化开发(高内聚,低耦合)-----spring就是一个大工厂(容器),可以将所有的对象创建和依赖关系维护,交给spring管理,spring工厂是用于生产Bean。
② AOP编程的支持: spring提供面向切面的编程,可以方便的实现对程序进行权限拦截运行监控等功能。
③ 声明式事务的支持:只需要通过配置就可以实现对事务的管理,无需手动编程
④ 方便程序的测试:spring对Junit4的支持,可以通过注解方便测试spring程序
⑤ 方便集成各种优秀框架
⑥ 降低了JavaEEAPI的使用难度,spring对JavaEE开发中非常难用的一些API(如JDBC),都提供了封装,使这些API应用难度大大降低。

Mybatis框架的总结
1.什么是mybatis框架?
答:mybatis框架就是一个来封装jdbc得持久层框架,它和hibernate都属于ORM框架,但是具体的说,MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架,MyBatis 避免了几乎所有的 JDBC 代码和手工设置参数以及抽取结果集。MyBatis 使用简单的 XML 或注解来配置和映射基本体,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。
Mybatis 的优点:
1、简单易学。mybatis 本身就很小且简单。没有任何第三方依赖,最简单安装只要两个 jar 加配置几个 sql
映射文件,易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现;
2、灵活。mybatis 不会对应用程序或者数据库的现有设计强加任何影响。 sql 写在 xml 里,便于统一管理和优
化。通过 sql 基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多;
3、解除 sql 与程序代码的耦合。通过提供 DAO 层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,
更易维护,更易单元测试。sql 和代码的分离,提高了可维护性;
4、提供映射标签,支持对象与数据库的 orm 字段关系映射;
5、提供对象关系映射标签,支持对象关系组建维护;
6、提供 xml 标签,支持编写动态 sql

4、Mybatis 缓存
一级缓存:Mybatis 的一级缓存的作用域是 session,当 openSession()后,如果执行相同的 SQL(相同语句和参数),Mybatis 不进行执行 SQL,而是从缓存中命中返回。
二级缓存:Mybatis 的二级缓存的作用域是一个 mapper 的 namespace,同一个 namespace 中查询 sql 可以从缓存中命中。二级缓存是可以跨 session 的。

Springmvc框架的总结
1.什么是Spring MVC ?简单介绍下你对springMVC的理解?
答:springMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级web框架,通过model,view,controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。
1.2 springmvc的流程?
(1)用户发送请求至前端控制器DispatcherServlet;
(2) DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle;
(3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;
(4)DispatcherServlet 调用 HandlerAdapter处理器适配器;
(5)HandlerAdapter 经过适配调用 具体处理器(Handler,也叫后端控制器);
(6)Handler执行完成返回ModelAndView;
(7)HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;
(8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;
(9)ViewResolver解析后返回具体View;
(10)DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
(11)DispatcherServlet响应用户。

1.3 springmvc的优点?
(1)可以支持各种视图技术,而不仅仅局限于JSP;
(2)与Spring框架集成(如IoC容器、AOP等);
(3)清晰的角色分配:前端控制器(dispatcherServlet) , 请求到处理器映射(handlerMapping), 处理器适配器(HandlerAdapter), 视图解析器(ViewResolver)。
(4) 支持各种请求资源的映射策略。

1.4 springMVC和struts2的区别有哪些?
(1)springmvc的入口是一个servlet即前端控制器(DispatchServlet),而struts2入口是一个filter过虑器(StrutsPrepareAndExecuteFilter)。
(2)springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
(3)Struts采用值栈存储请求和响应的数据,通过OGNL存取数据,springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl。

1.5 重定向 (redirect)和转发(forward)的区别?
1、转发使用的是getRequestDispatcher()方法;重定向使用的是sendRedirect();
2、转发:浏览器URL的地址栏不变。重定向:浏览器URL的地址栏改变;
3、转发是服务器行为,重定向是客户端行为;
4、转发是浏览器只做了一次访问请求。重定向是浏览器做了至少两次的访问请求;
5、转发2次跳转之间传输的信息不会丢失,重定向2次跳转之间传输的信息会丢失(request范围)。

Springboot框架总结

  1. 什么是springboot框架?
    答:Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的开发过程。
    1.1. Spring Boot 的主要优点:
     为所有 Spring 开发者更快的入门
     简化项目配置
     内嵌式容器简化 Web 项目
     springboot 整合的框架统一管理版本,不会存在版本冲突
     springcloud 基于 springboot 开发

问题一 Spring Boot、Spring MVC 和 Spring 有什么区别?
答:SpringFrame, SpringFramework 最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。
当我们恰当的使用 DI 或者是 IOC 的时候,我们可以开发松耦合应用。松耦合应用的单元测试可以很容易的进行。
SpringMVC, Spring MVC 提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServelet,MoudlAndView 和ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。
SpringBoot, Spring 和 SpringMVC 的问题在于需要配置大量的参数。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值