Spring的面试不用愁,看完这38道题再去
大家好,这一期呢,我们说38道spring的面试题。
第1道: 什么是spring?
Spring是基于Java语言的轻量型,松耦合的集成开发框架。
第2道: spring给我们带来了什么好处?
好处有下面几个,
1是预先定义的模板, 省去了我们自己添加的时间。
2是松耦合。
3是容易测试。
4是轻量级。
5是开发快捷。
6是强大的抽象化。
7是声明性的支持。
第3道,spring中的模块儿有哪些?
模块包括1是测试。2是核心容器。3是面向特征的编程方式。4是数据访问与集成。5是网络开发模块。
第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是否支持有效性验证?
答案为是。
上面只是我个人对这个话题的一点心得体会,分享给大家,希望与大家讨论,共同提高,欢迎拍砖。
网友评论