aop拦截mybatis执行sql_Java进阶架构之开源框架面试题系列:Spring+SpringMVC+MyBatis

2de795dfb23d39f6e04ab6baf99d54ad.png

开源框架

  • Spring5 Framework体系结构
  • spring5概述
  • Spring5环境搭建
  • Spring MVC
  • AOP源码解析
  • IOC源码解析
  • Mybatis
01a9b9400c2994f0fed873c31f888c63.png

spring

40e30c66673c76de85684dfc8ca9656a.png

什么是Spring框架?Spring框架有哪些主要模块?

使用Spring框架能带来哪些好处?

什么是控制反转(IOC)?什么是依赖注入?

请解释下Spring框架中的IOC?

BeanFactory和ApplicationContext有什么区别?

Spring有几种配置方式?

如何用基于XML配置的方式配置Spring?

5d364849190da43811cfdd086b67f519.png

怎样用注解的方式配置Spring?

请解释Spring Bean的生命周期?

Spring Bean的作用域之间有什么区别?

什么是Spring inner beans?

Spring框架中的单例Beans是线程安全的么?

请举例说明如何在Spring中注入一个Java Collection?

如何向Spring Bean中注入一个Java.util.Properties?

请解释Spring Bean的自动装配?

如何开启基于注解的自动装配?

6e74579bb9a21884bc05a8a16247a9f8.png

请解释自动装配模式的区别?

请举例解释@Required注解?

请举例解释@Autowired注解?

请举例说明@Qualifier注解?

构造方法注入和设值注入有什么区别?

Spring框架中有哪些不同类型的事件?

FileSystemResource和ClassPathResource有何区别?

Spring 框架中都用到了哪些设计模式?


SpringMVC

12f4a9c3b555bfaeddf0373b21982e95.png

什么是SpringMvc?

Spring MVC的优点

SpringMVC工作原理?

SpringMVC流程?

SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?

如果你也用过struts2.简单介绍下springMVC和struts2的区别有哪些?

SpingMvc中的控制器的注解一般用那个,有没有别的注解可以替代?

@RequestMapping注解用在类上面有什么作用?

怎么样把某个请求映射到特定的方法上面?

如果在拦截请求中,我想拦截get方式提交的方法,怎么配置?

怎么样在方法里面得到Request,或者Session?

我想在拦截的方法里面得到从前台传入的参数,怎么得到?

如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?

SpringMvc中函数的返回值是什么?

SpringMVC怎么样设定重定向和转发的?

SpringMvc用什么对象从后台向前台传递数据的?

SpringMvc中有个类把视图和数据都合并的一起的,叫什么?

怎么样把ModelMap里面的数据放入Session里面?

SpringMvc怎么和AJAX相互调用的?

当一个方法向AJAX返回特殊对象,譬如Object,List等,需要做什么处理?

SpringMvc里面拦截器是怎么写的

讲下SpringMvc的执行流程


MyBatis

1377232c750e5689aa3e77c9493c8335.png

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

通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?

Mybatis是如何进行分页的?分页插件的原理是什么?

Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

Xml映射文件中,除了常见的select|insert|update|delete标签之外,还有哪些标签?

简述Mybatis的插件运行原理,以及如何编写一个插件

一级、二级缓存

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

Mybatis映射文件中,如果A标签通过include引用了B标签的内容,请问,B标签能否定义在A标签的后面,还是说必须定义在A标签的前面?

简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?

面试题及答案的获取方式,欢迎加入Java进阶架构交流:805685193。提供Java架构进阶思维导图,主要分享分布式架构、高可扩展、高性能、高并发、性能优化、Spring MVC、Redis、MyBatis、Nginx、Jvm大型分布式项目实战学习架构师视频。


答案解析

什么是Spring框架?Spring框架有哪些主要模块?

Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。

Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。

Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何在后台进行工作的。

Spring框架至今已集成了20多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。

SpringMVC工作原理?

  1. 客户端发送请求到DispatcherServlet
  2. DispatcherServlet查询handlerMapping找到处理请求的Controller
  3. Controller调用业务逻辑后,返回ModelAndView
  4. DispatcherServlet查询ModelAndView,找到指定视图
  5. 视图将结果返回到客户端

MyBatis的好处是什么?

  1. MyBatis把sql语句从Java源程序中独立出来,放在单独的XML文件中编写,给程序的维护带来了很大便利。
  2. MyBatis封装了底层JDBC API的调用细节,并能自动将结果集转换成Java Bean对象,大大简化了Java数据库编程的重复工作。
  3. 因为MyBatis需要程序员自己去编写sql语句,程序员可以结合数据库自身的特点灵活控制sql语句,因此能够实现比Hibernate等全自动orm框架更高的查询效率,能够完成复杂查询。

面试题及答案的获取方式,欢迎加入Java进阶架构交流:805685193。提供Java架构进阶思维导图,主要分享分布式架构、高可扩展、高性能、高并发、性能优化、Spring MVC、Redis、MyBatis、Nginx、Jvm大型分布式项目实战学习架构师视频。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部