手撕面试官系列(二):开源框架面试题Spring+SpringMVC+MyBatis
文章首发于今日头条:https://www.toutiao.com/i6712324863006081549/
前言
跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽。切不可跟风,看到同事一个个都走了,自己也盲目的开始面试起来(期间也没有准备充分),到底是因为技术原因(影响自己的发展,偏移自己规划的轨迹),还是钱给少了,不受重视。
闲话不多说开始主题(面试题+答案领取方式见侧边栏)
常见spring面试题:
1 、什么是 Spring 框架?Spring 框架有哪些主要模块?
2 、使用 Spring 框架能带来哪些好处?
3 、什么是控制反转(IOC) ?什么是依赖注入?
4 、请解释下 Spring 框架中的 IoC ?
5 、BeanFactory 和 和 ApplicationContext 有什么区别?
6 、Spring 有几种配置方式?
7 、如何用基于 XML 配置的方式配置 Spring ?
8 、如何用基于 Java 配置的方式配置 Spring?
9 、怎样用注解的方式配置 Spring
10 、请解释 Spring Bean 的生命周期?
11 、Spring Bean 的作用域之间有什么区别?
12 、什么是 Spring inner beans?
13 、Spring 框架中的单例 Beans 是线程安全的么?
14 、请举例说明如何在 Spring 中注入一个 Java Collection?
15 、如何向 Spring Bean 中注入一个 Java.util.Properties ?
16 、请解释 Spring Bean 的自动装配?
17 、请解释自动装配模式的区别?
18 、如何开启基于注解的自动装配?
19 、请举例解释@Required 注解?
20 、请举例解释@Autowired 注解?
21 、请举例说明@Qualifier 注解?
22 、构造方法注入和设值注入有什么区别?
23 、Spring 框架中有哪些不同类型的事件?
24 、FileSystemResource 和 和 ClassPathResource 有何区别?
25 、Spring 框架中都用到了哪些设计模式?
Spring MVC
1、什么是 SpringMvc?
2、Spring MVC 的优点
3、SpringMVC 工作原理?
4、SpringMVC 流程?
5、SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决?
6、如果你也用过 struts2.简单介绍下 springMVC 和 struts2 的区别有哪些?
7、SpingMvc 中的控制器的注解一般用那个,有没有别的注解可以替代?
8、 @RequestMapping 注解用在类上面有什么作用?
9、怎么样把某个请求映射到特定的方法上面?
10、如果在拦截请求中,我想拦截 get 方式提交的方法,怎么配置?
11、怎么样在方法里面得到 Request,或者 Session?
12、我想在拦截的方法里面得到从前台传入的参数,怎么得到?
13、如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
14、SpringMvc 中函数的返回值是什么?
15、SpringMVC 怎么样设定重定向和转发的?
16、SpringMvc 用什么对象从后台向前台传递数据的?
17、SpringMvc 中有个类把视图和数据都合并的一起的,叫什么?
18、怎么样把 ModelMap 里面的数据放入 Session 里面?
19、SpringMvc 怎么和 AJAX 相互调用的?
20、当一个方法向 AJAX 返回特殊对象,譬如 Object,List 等,需要做什么处理?
21、SpringMvc 里面拦截器是怎么写的
22、讲下 SpringMvc 的执行流程
MyBatis
1、什么是 MyBatis?
2、讲下 MyBatis 的缓存
3、Mybatis 是如何进行分页的?分页插件的原理是什么?
4、简述 Mybatis 的插件运行原理,以及如何编写一个插件?
5、Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?
6、#{}和${}的区别是什么?
7、为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
8、Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
9、MyBatis 与 Hibernate 有哪些不同?
10、MyBatis 的好处是什么?
11、简述 Mybatis 的 Xml 映射文件和 Mybatis 内部数据结构之间的映射关系?
12、什么是 MyBatis 的接口绑定,有什么好处?
13、接口绑定有几种实现方式,分别是怎么实现的?
14、什么情况下用注解绑定,什么情况下用 xml 绑定?
15、MyBatis 实现一对一有几种方式?具体怎么操作的?
16、Mybatis 能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?
17、MyBatis 里面的动态 Sql 是怎么设定的?用什么语法?
18、Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?
19、Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?
20、当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定 pojo?
21、模糊查询 like 语句该怎么写
22、通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应, Dao 的工作原理,是否可以重载?
23、Mybatis 映射文件中,如果 A 标签通过 include 引用了 B 标签的内容,请问,B 标签能否定义在 A 标签的后面,还是说必须定义在 A 标签的前面?
24、Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复?
25、Mybatis 中如何执行批处理?
26、Mybatis 都有哪些 Executor 执行器?它们之间的区别是什么?
27、Mybatis 中如何指定使用哪一种 Executor 执行器?
28、Mybatis 执行批量插入,能返回数据库主键列表吗?
29、Mybatis 是否可以映射 Enum 枚举类?
30、如何获取自动生成的(主)键值?
31、在 mapper 中如何传递多个参数?
32、resultType resultMap 的区别?
33、使用 MyBatis 的 mapper 接口调用时有哪些要求?
34、Mybatis 比 IBatis 比较大的几个改进是什么?
35、IBatis 和 MyBatis 在核心处理类分别叫什么?
36、IBatis 和 MyBatis 在细节上的不同有哪些?