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

开源框架
- Spring5 Framework体系结构
- spring5概述
- Spring5环境搭建
- Spring MVC
- AOP源码解析
- IOC源码解析
- Mybatis

spring

什么是Spring框架?Spring框架有哪些主要模块?
使用Spring框架能带来哪些好处?
什么是控制反转(IOC)?什么是依赖注入?
请解释下Spring框架中的IOC?
BeanFactory和ApplicationContext有什么区别?
Spring有几种配置方式?
如何用基于XML配置的方式配置Spring?

怎样用注解的方式配置Spring?
请解释Spring Bean的生命周期?
Spring Bean的作用域之间有什么区别?
什么是Spring inner beans?
Spring框架中的单例Beans是线程安全的么?
请举例说明如何在Spring中注入一个Java Collection?
如何向Spring Bean中注入一个Java.util.Properties?
请解释Spring Bean的自动装配?
如何开启基于注解的自动装配?

请解释自动装配模式的区别?
请举例解释@Required注解?
请举例解释@Autowired注解?
请举例说明@Qualifier注解?
构造方法注入和设值注入有什么区别?
Spring框架中有哪些不同类型的事件?
FileSystemResource和ClassPathResource有何区别?
Spring 框架中都用到了哪些设计模式?
SpringMVC

什么是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

#{}和${}的区别是什么?
通常一个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工作原理?
- 客户端发送请求到DispatcherServlet
- DispatcherServlet查询handlerMapping找到处理请求的Controller
- Controller调用业务逻辑后,返回ModelAndView
- DispatcherServlet查询ModelAndView,找到指定视图
- 视图将结果返回到客户端
MyBatis的好处是什么?
- MyBatis把sql语句从Java源程序中独立出来,放在单独的XML文件中编写,给程序的维护带来了很大便利。
- MyBatis封装了底层JDBC API的调用细节,并能自动将结果集转换成Java Bean对象,大大简化了Java数据库编程的重复工作。
- 因为MyBatis需要程序员自己去编写sql语句,程序员可以结合数据库自身的特点灵活控制sql语句,因此能够实现比Hibernate等全自动orm框架更高的查询效率,能够完成复杂查询。
面试题及答案的获取方式,欢迎加入Java进阶架构交流:805685193。提供Java架构进阶思维导图,主要分享分布式架构、高可扩展、高性能、高并发、性能优化、Spring MVC、Redis、MyBatis、Nginx、Jvm大型分布式项目实战学习架构师视频。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
