写点什么

2021 最新 38 道 Spring 大厂面试题,你碰到过哪道?

用户头像
Java架构师
关注
发布于: 19 小时前

大家好,这一期呢,我们来讲一下 spring 面试题,这 38 道面试题都是今年大厂面试问到过的题目,废话不多说接下来就上正文吧!



1.什么是 spring?


Spring 是基于 Java 语言的轻量型,松耦合的集成开发框架。


2.spring 给我们带来了什么好处?


好处有下面几个:


  • 是预先定义的模板, 省去了我们自己添加的时间。

  • 是松耦合。

  • 是容易测试。

  • 是轻量级。

  • 是开发快捷。

  • 是强大的抽象化。

  • 是声明性的支持。


3.spring 中的模块儿有哪些?


模块包括一是测试,二是核心容器,三是面向特征的编程方式,四是数据访问与集成,五是网络开发模块。


4.什么是 loc?什么是 dI?


ioc 是依赖反转,dl 是依赖注入。这种设计模式是为了提供松耦合性,从而去除程序中的强依赖性。


5.ioc 容器起什么作用?


ioc 容器的作用如下,创建实例,配置实例和集成依赖。


6.ioc 容器有几种类型?


有两种: beanfactory 和 applicationcontext.


7.beanfactory 和 applicationcontext 有什么区别?


beanfactory 是基本容器,而 applicationcontext 是高级容器。Applicationcontext 是扩展了 beanfactory 的接口。Applicationcontext 比 beanfactory 提供了更多东西,比如跟 aop 的集成, 消息资源处理等等。


8.构造器注入和设置器注入的区别是什么?


  • 构造器注入没有部分注入。设置器允许部分注入。

  • 构造器不能重写设置器属性。设置器可以重写构造器属性。

  • 如果有任何修改构造器会创建一个新实例。如果属性改变设置器并不会创建一个新实例。

  • 构造器适合用于有非常多的属性的情况。设置器适合属性比较少的情况。


9.什么是 autowiring? 其模式是什么?


Autowiring 使得程序员可以自动的注入 bean。


其模式有如下 4 种, 一是缺省模式,也就是不激活 autowiring。二是名字模式,使用的是设置器。三是类型模式,使用的是设置器。4 是构造器模式。


10.bean 的运行模式有几种?


一共有 5 种, singleton, prototype, request, session, global session。


11.什么情况下你使用 singleton 和 prototype?


Singleton 适合用在无状态的 bean 里面, prototype, 适合用在有状态的 bean 里面。


12.Spring 支持几种事务管理方式?


一共两种, 程序化的事务管理和声明性的事务管理。


13.jdbc 模板的好处是什么?


代码量减少了。你不是需要关心数据库链接, 声明,事务开始, 提交事务,关闭连接这些事情,你可以直接对查询进行操作了。


14.jdbc 相关的应用程序接口类有哪些?


JdbcTemplate, SimpleJdbcTemplate, NamedParameterJdbcTemplate, SimpleJdbcInsert, SimpleJdbcCall.


15.你如何用 jdbc 模板获取记录?


可以使用查询方法来获取记录。有两个接口可以使用, ResultSetExtractor, RowMapper。


16.NamedParameterJdbcTemplate 的优势是什么?


最大的优势就是容易记忆,它支持传值给有名字的参数。


17.SimpleJdbcTemplate 的优势是什么?


它的优势是支持可变参数和 autoboxing。


18.什么是 aop?


Aop 就是面向任务或者概念的编程技术。


19.aop 的好处是什么?


aop 允许你在业务逻辑之前或之后添加或删除功能, 维护方便。


20.aop 有哪些术语?


JoinPoint, Advice, PointCut, Aspect, Introduction, Target Object, Intercepter, Aop Proxy, Weaving.


21.什么是 joinpoint?


Join point 是指你程序中任何一个访问点, 比如成员的访问, 方法的运行,异常处理等等。


22.Spring 是否支持所有的 join points?


答案是否定的,spring 只支持方法运行的 join point。


23.什么是 advice?


Advice 是任务所采取的行动。


24.在 aop 中有几种 advice?


Before advice, after advice, after returning advice , throws advice, around advice.


25.什么是 point cut?


Point cut 是 aop 的表达语言。


26.什么是 aspect?


Aspect 是 aop 中包含 advices 和 join points 的类。


27.什么是 introduction?


Introduction 是对一个类型的成员和方法的介绍。


28.什么是 Target object?


Target object 是一个和多个 aspects 的代理对象。


29.什么是 interceptor?


Intercepter 是只包含一个 advice 的类。


30.什么是 weaving?


weaving 是连接另一个程序的 aspect 的一个进程。


31.spring 是否在编译时期执行 weaving?


不会,spring 只在运行期间执行 weaving。


32.什么是 aop 的实现?


有三种实现,spring aop, apache aspectj, jboss aop.


33.Spring mvc 的前端控制器类是什么?


Dispatcher servlet.


34.Controller 注释是干什么的?


Controller 注释是为了标明一个 controller 类。


35.request mapping 注释的作用是什么?


request mapping 是为了标明一个方法的请求属性。


36.viewresolver 是干什么的?


是为了根据请求调用对应的视图组件。他是通过前缀和后缀属性来对应视图组件的。


37.哪种 view resolver 用的比较多?


Internal resource view resolver, 用的比较多。


38.Spring mvc 是否支持有效性验证?


答案为是。


上面只是我个人对这个话题的一点心得体会,分享给大家,希望与大家讨论,共同提高,另外我也整理了一些 Java 学习笔记+面试资料,需要的可【点击此处】获取

用户头像

Java架构师

关注

还未添加个人签名 2021.05.28 加入

还未添加个人简介

评论

发布
暂无评论
2021最新38道Spring大厂面试题,你碰到过哪道?