Spring Boot及Spring MVC、Mybatis知识点

1、什么是Spring boot?

Spring boot其实是Spring框架大家庭中的新的成员,它可以简化应用程序的开发。通过简化Spring众多框架中所需的大量且繁琐的配置文件(xml),也可以说去xml化。

2、什么是Starter?

Starter主要用来简化依赖。比如我们做Spring MVC时要引入日志文件,那么就需要找到log4j的版本,然后引入,有了starter以后,我们就可以不用这么麻烦了,Spring boot会自动引入。

3、什么是Spring MVC?

Spring MVC是基于MVC架构的一个Spring模块,无需中间整合层来整合。主要用来简化应用程序的开发,属于表现层的框架。

4、请你详细讲述一下Spring MVC的运行流程?

1. 用户发送请求到前端控制器DispatcherServlet
2. 前端控制器调用处理器映射器HandlerMapping,请求获取Handler
3. 处理器映射器根据具体url生成处理器以及处理器拦截器,返回到前端控制器
4. 前端控制器通过调用处理器适配器HandlerAdapter,请求执行handler
5. 处理器适配器执行handler
6. 执行后返回ModelAndView
7. 处理器适配器再将ModelAndView返回给前端控制器
8. 前端控制器将ModelAndView传给视图解析器ViewResolver解析
9. 返回具体View给前端控制器
10.渲染视图
11.响应用户

5、什么是Mybatis?

1.Mybatis是一个半ORM(对象关系映射)框架,内部封装了JDBC、加载驱动、创建连接等过程。使得开发者只需要关心如何而编写SQL语句,可以严格控制sql执行性能,灵活度高。

2.Mybatis主要使用XML或注解来配置和映射原生信息,将POJO映射成数据库中的记录,避免手写大量JDBC代码和手动设置参数以及获取结果集。

优点:   1.基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响
		2.与JDBC相比,减少了50%以上的代码,还有不需要手动开关连接
		3.可以很好的和数据库兼容
		4.可以很好地和Spring集成
		

缺点:	1.当字段多、关联表多时,对开发人员的SQL编写功底有一定要求
		2.因为SQL语句依赖于数据库,导致数据库移植性差,一旦更改数据库就会造成很大影响。

6、#{}和${}的区别是什么?

#{} 是预编译处理,Mybatis在处理时,sql语句会将#{}替换为 ?号,调用PreparedStatement的set方法来赋值,有效防止SQL注入,提高系统安全性

$ {}是字符串替换,Mybatis在处理时,sql会将${}替换为变量的值。

7、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?

Mybatis仅支持association关联对象和collection关联集合对象的延迟加载。association指的是一对一,collection指的是一对多。延迟加载的原理是使用CGLIB创建目标对象的代理对象,当调用目标方法时,进入拦截器方法。

8、Mybatis的一级、二级缓存

1.	一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域为Session,当Session
flush 或close之后,该Session中的Cache被清空,默认打开一级缓存。
2.	二级缓存与一级缓存机制相同,默认采用PerpeCache的HashMap本地缓存,不同在于其存储作用域为
Mapper文件的namespcae,并且可自定义存储源,如EhCache。默认不打开二级缓存。

版权声明:本文为qq_44188658原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。