练习集锦

单选题

1.将元数据配置到Spring容器,下面那个方法是正确的()

A.通过编译与接祖对象
B.注解基础配置
C.Java基础配置
D.XML基础配置


【正确答案】A
【答案解析】有三种方式向Spring 容器提供元数据:XML配置文件,基于注解配置,基于Java的配置
2.下面哪个不是Spring 常用的注解()

A.@Aspect
B.@Service
C.@Component
D.@Controller

【正确答案】E
【答案解析】@Component不是Spring常用注解,@Aspect定义切面
         @Service标注在ServiceImpl类上,@Controller标注在控制层上
3.对于@Controller注解,说法正确的是()

A.仍然需要实现Controller接口
B.可以提供多个处理方法
C.处理方法的返回值必须是ModelAndView
D.处理方法必须要有返回值

【正确答案】B
【答案解析】使用@Controller来实现二级控制器,不再需要实现Controller接口了
         可以提供多个处理方法,并且处理方法可以没有返回值(比如生成验证码)
         也可以返回ModelAndView或者String。
4.Spring中around通知的目标对象要实现的接口是()

A.MethodBeforeAdvice
B.ThrowsAdvice
C.AfterReturningAdvice
D.MethodInterceptor

【正确答案】D
【答案解析】around通知的目标对象要实现的接口就是MethodInterceptor
5.mybatis编程步骤是什么样的?

1.通过sqlSessionFactory创建SqlSession
SqlSeeion openSession=sqlSessionFactory.openSession();
2.创建SqlsessionFactory
sqlSesssionFactory=newSqlSessionFactoryBuilder().build(inputStream);
3.通过sqlsession执行数据库操作
4.调用session.commit()或session.rollback()
5.调用session.close()关闭会话
下面执行顺序正确的是
A.1 2 3 4 5
B.2 1 3 4 5
C.1 2 3 5 4
D.1 3 2 4 5

【正确答案】
【答案解析】MyBatis执行步骤就是这样的,死规则,记住即可
6.看下面的代码,说法正确的是()



ACCP


A.其中的userName是UserTable中的属性,可以不要get、set方法。
B.其中的userName是UserTable中的属性,可以不要get方法,但是一定要有set方法
C.其中的userName是UserTable中的属性,可以不要set方法,但是一定要有get方法
D.其中的userName是UserTable中的属性,一定要有get和set方法

【正确答案】B
【答案解析】Spring中关于xml文件的配置要求一定要有set方法
7.看下面的代码,说法正确的是()






.*


A.这段代码是在定义目标对象
B.这段代码在定义切入点
C.这段代码是在定义代理
D.这段代码是在定义织入

【正确答案】B
【答案解析】Spring框架中advice就是在定义切入点
8.项目中有如下包结构和类:

|- com
|- tarena
|- service
UserService(接口)
|-impl
UserServiceImpl(实现)
在配置切点时给出了如下切点表达式,问使用getBean从spring容器中获取对象时,是否会创建代理对象
A.切点表达式为 within(com.tarena.*) UserServiceImpl 是代理
B.切点表达式为 within(com.tarena.service..*) UserServiceImpl 是代理
C.切点表达式为 execution( com.tarena.service..*(..)) UserServiceImpl不是代理
D.切点表达式为 execution( com.tarena...*(..)) UserServiceImpl 不是代理

【正确答案】B
【答案解析】参考AOP中切点表达式
9.下面关于BeanFactory接口说法正确的是()

A.BeanFactory是单例模式的实现,负责创建和管理bean
B.BeanFactory是工厂模式的实现,负责创建和管理bean
C.ApplicationContext类是它的实现类
D.以上说法都不对

【正确答案】B
【答案解析】参考BeanFactory
10.SpringMVC 请求一个控制层资源时,可以在对应方法中()

A.可以直接使用参数变量接收参数数据,参数变量的类型不一定为对象类型
B.直接使用参数变量接收参数数据,但参数变量的类型要为对象类型
C.可以直接使用参数变量接收参数数据,参数变量的类型要根据实际情况选择。
D.不能直接使用参数变量接收参数数据

【正确答案】B
【答案解析】此题考查参数变量的接收问题
11.关于浏览器中输入某个地址,直接访问资源访问地址,页面显示helloworld

以下哪个顺序是正确的()
1)创建Spring MVC 后端处理器(Controller)
2)创建spring maven web项目
3)部署运行spring web项目(tomcat)
4)Web.xml中配置Spring MVC 前端核心处理器(DispatcherServlet)
5)添加Spring MVC 依赖库(建议通过maven添加)
6)spring-mvc.xml文件中配置Spring后端处理器及视图解析器(ViewResolver)
7)添加Spring 配置文件spring-mvc.xml。

A.2-5-6-1-7-4-3
B.2-5-7-4-1-6-3
C.2-5-6-4-1-7-3
D.2-5-7-1-4-6-3

【正确答案】B
【答案解析】此题考查SpringMVC 中的细节
12.下面关于在Spring中配置Bean的init-method的说法正确的是()

A.init-method是在最前面执行的
B.init-method在构造方法后,依赖注入前执行
C.init-method在依赖注入之后执行
D.init-method在依赖注入之后,构造函数之前执行

【正确答案】C
【答案解析】此题考查Spring中配置Bean的init-method
13.Spring注入的bean默认被配置为以下哪一个作用域( )。

A.原型 (Prototype)
B.会话 (session)
C.单例 (singleton)
D.请求 (request)

【正确答案】C
【答案解析】spring中注入的bean默认被配置为单例模式,意味着对于同一个类而言,其所有的被注入对象其实都是同一个对象。但是对于对象中含有一些状态属性的情况,我们并不想要singleton。spring中提供了四种作用域就是(A,B,D)答案
(14.下面关于Spring管理Bean的说法正确的是( )

A.Bean在Spring容器中有两种管理方式,工厂模式和单例模式
B.Bean在 Spring容器中有两种管理方式,原型模式和单例模式
C.Spring默认的利用工厂模式管理Bean
D.Spring默认利用原型模式管理Bean

【正确答案】B
【答案解析】此题考查Spring管理Bean
15.下面关于构造注入优点说法错误的是( )

A.构造期即创建一个完整、合法的对象
B.不需要写繁琐的set方法的
C.对于复杂的依赖关系,构造注入更简洁,直观
D.在构造函数中决定依赖关系的注入顺序

【正确答案】C
【答题时间】2020-11-27 01:46:39
【答案解析】此题考查构造注入
16.与以下给出的相关组件关系对应正确的是()

1)DispatcherServlet
2)SimpleUrlHandlerMapping
3)HelloController
4)ModelAndView
5)InternalResourceViewResolver
A.

1)又称之为handler,处理客户端请求
2)记录url到handler的映射
3)核心前端处理(负责流程调度)
4)负责视图解析,基于view找到具体的
view对象,例如hello.jsp
5)封装数据以及对应的视图 

B.

1)核心后端处理(负责流程调度)
2)又称之为handler,处理客户端请求
3)记录url到handler的映射
4)负责视图解析,基于view找到具体的
5)封装数据以及对应的视图
view对象,例如hello.jsp 

C.

1)核心前端处理(负责流程调度)
2)又称之为handler,处理客户端请求
3)记录url到handler的映射
4)负责视图解析,基于view找到具体的view对象,例如hello.jsp
5)封装数据以及对应的视图 

D.

1)核心前端处理(负责流程调度)
2)记录url到handler的映射
3)又称之为handler,处理客户端请求
4)封装数据以及对应的视图
5)负责视图解析,基于view找到具体的
view对象,例如hello.jsp 
【正确答案】D
【答案解析】此题考查对SpringMVC流程的理解
17.下列切入点表达式错误的是 ()

A.* cn.itcast.aop.Demo.add()
B. ...(..)
C.add(int)
D.int cn.itcast.Demo.add(int,int)

【正确答案】C
【答案解析】此题考察Spring的切入点表达式
18.Spring中Before通知的目标对象要实现的接口是()

A.MethodBeforeAdvice
B.ThrowsAdvice
C.AfterReturningAdvice
D.MethodInterceptor

【正确答案】A
【答案解析】考查Spring中的Before通知
19.Spring中Before通知的目标对象要实现的接口中before方法中的三个常用的参数依次是()

A.方法,方法的参数,目标对象
B.方法的参数,方法,目标对象
C.目标对象,方法,方法的参数
D.方法的参数,目标对象,方法

【正确答案】A
【答案解析】此题考查Spring中Before通知
20.在web.xml文件中配置Spring框架,下面配置正确的是()

A.
config
/WEB-INF/classes/applicationContext.xml

B.
servletConfig
/WEB-INF/classes/applicationContext.xml

C.contex;/WEB-;
D.contex;/WEB-;

【正确答案】D
【答案解析】此题考查Spring框架中XML 文件配置
21.下面关于设置注入优点说法正确的是( )

A.构造期即创建一个完整、合法的对象
B.需要写繁琐的setter方法的
C.对于复杂的依赖关系,设置注入更简洁,直观
D.以上说法都不对

【正确答案】C
【答案解析】此题考查对注入的理解
22.下面有关spring的依赖注入,说法错误的是( )。

A.依赖注入通常有如下两种:设值注入和构造注入:
B.构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入
C.当设值注入与构造注入同时存在时,先执行构造注入,再执行设值注入
D.设值注入是指IoC容器使用属性的setter方法来注入被依赖的实例。这种注入方式比较简单、直观

【正确答案】C
【答案解析】用构造函数依赖注入时,Spring保证一个对象所有依赖的对象先实例化后,才实例化这个对象。
使用set方法依赖注入时,Spring首先实例化对象,然后才实例化所有依赖的对象。
当设值注入与构造注入同时存在时,先执行设值注入,再执行构造注入。
所以C是错误的
23.Spring中around通知的目标对象要实现的接口中invoke中方法的参数是()

A.方法
B.目标对象
C.方法执行参数
D.Exception

【正确答案】C
【答案解析】此题考查Spring中around通知

多选题

1.下列有关注入描述正确的是 ()

A.可以为Bean注入List集合对象
B.可以为Bean注入Map集合对象
C.可以为Bean注入Set集合对象
D.可以为Bean注入Properties集合对象

【正确答案】A,B,C,D
【答案解析】此题考察Spring中的依赖注入
2.对于@Controller注解,说法正确的是( )。

A.默认id是首字母小写之后的类名。
B.可以使用该注解的name属性重新指定id。
C.处理方法的返回值可以是ModelAndView或者String,也可以没有返回值。
D.处理方法必须要有返回值。

【正确答案】A,C
【答案解析】直接在该注解后面指定id即可,比如@Controller("hello"),则该bean的id就是hello。返回值可以是ModelAndView或者String。
3.查看以下代码可以得知@RequestMapping(value="path/{var}",method=RequestMethod.GET)

@ResponseBody
public String withPathVariable(@PathVariable String var) {

return "Obtained 'var' path variable value '" + var + "'";

}
A.通过@PathVariable注解指定参数变量var获取请求url中{var}数据
B.通过@PathVariable注解指定参数变量var不能获取到请求url中{var}数据
C.SpringMVC请求资源路径的URL可以通过{XXX}形式指定动态的URL,动态URL中的这个可变参数的值可以直接注入到方法对应的参数中。
D.SpringMVC请求资源路径的URL可以通过{XXX}形式指定动态的URL,动态URL中的这个可变参数的值必须通过传参注入到方法对应的参数中。

【正确答案】A,C
【答案解析】考查SpringMVC 的注解知识
4.Mybatis都有哪些Executor执行器?

A.SimpleExecutor
B.ReuseExecutor
C.BatchExecutor
D.BathExecutor

【正确答案】A,B,C
【答案解析】Mybatis的执行器有SimpleExecutor ReuseExecutor BatchExecutor
5.针对以下配置,说法正确的是( )。

          base-package="com.tarena"/> 

A.这是配置组件扫描。
B.容器只会扫描com.tarena的包下面的类
C.容器会扫描com.tarena包及其子包下面的类。
D.组件扫描可以替代大量XML配置的定义。

【正确答案】A,C,D
【答案解析】本题考查组件扫描的基本配置,要注意,容器会扫描指定包及其子包下面的所有类,如果这些类包含了特定的注解,容器会将其纳入容器进行管理,所以B是错误的。注解的好处之一,就是简化了配置文件,所以D是正确的。
6.Spring中的@AspectJ切点表达式函数都有哪些?

A.方法切点函数
B.方法横切点函数
C.目标类切点函数
D.代理类切点函数

【正确答案】A,C,D
【答案解析】ACD
7.Spring的AOP的动态代理机制都有哪些?

A.CGLib库
B.JDK动态代理
C.Proxy代理
D.Auto代理

【正确答案】A,B
【答案解析】AB
8.下面是BeanFactory的实现类的是( )

A.ClassPathXmlApplicationContext
B.ApplicationContext
C.FileSystemXmlApplicationContext
D.以上都是

【正确答案】A,C
【答案解析】考查Spring原理
9.关于set注入和构造注入说法正确的是( )

A. 执行效果完全相同
B.注入依赖关系注入时机不同
C.set注入方式依赖对象先注入
D.构造注入方式依赖对象先注入

【正确答案】B,D
【答案解析】此题考查set注入与构造注入
10.下面是Spring依赖注入方式的是( )

A.set方法注入
B.构造方法的注入
C.get方法的注入
D.接口的注入

【正确答案】A,B
【答案解析】此题考查Spring的两种依赖注入IOC 方式
11.SpringMVC中必须用到的组件为:()

A.前端控制器
B.处理器适配器
C.处理器映射器
D.文件上传解析器

【正确答案】A,B,C
【答案解析】此题考察SpringMVC 的基本概念
12.下面关于AOP的理解正确的是( )

A.能够降低组件之间的依赖关系
B.将项目中的公共的问题集中解决,减少代码量,提高系统的可维护性
C.AOP是面向对象的代替品
D.AOP不是面向对象的代替品,是面向对象很好的补充

【正确答案】B,C
【答案解析】此题考查对AOP的理解
13.关于获取请求参数值,说法正确的是( )。

A.Spring会自动将表单参数注入到方法参数(名称一致)。
B.使用@RequestParam注解,映射不一致的名称。
C.使用自动机制封装成Bean对象。
D.参数类型自动转换,不会产生类型转换异常。

【正确答案】A,B,C
【答案解析】本题考查在二级控制器(Controller)中如何获取请求参数值,要注意的是,类型转换有可能出错,需要编程处理,故答案D是错误。
14.Spring中提供通过Web容器来启动Spring框架的类有( )

A.ContextLoaderListener
B.ServletLoaderListner
C.ContextLoaderServlet
D.ActionServlet

【正确答案】A,C
【答案解析】此题考查Spring框架的类
15.下面关于AOP的理解,正确的是( )

A.A)面向纵向的开发
B.B)面向横向的开发
C.C)AOP关注是面
D.D)AOP关注的是点

【正确答案】B,C
【答案解析】此题考查对AOP的理解
16.下列关于bean的生命周期,说法正确的是( )。

A.每个bean都必须提供相应的生命周期方法。
B.销毁方法只适用于singleton模式的bean。
C.销毁方法可以运行多次。
D.初始化方法只会执行一次。

【正确答案】B,D
【答案解析】考查容器如何管理bean的生命周期。在设计bean时,依据实际业务的需要,可以为bean提供相应的生命周期方法,比如在初始化方法当中完成资源加载等类似的逻辑,在销毁方法中释放资源。因此bean当中是否有生命周期相关的方法,完成取决于实际业务需要,并不是必须的,所以答案A是错误的。销毁方法用于释放资源,只需要执行一次,所以答案C也是错误的。
17.对于springmvc的五大核心组件,说法正确的是( )。

A.DispatcherServlet是前端控制器,请求入口。
B.HandleMapping提供请求与模型的对应关系。
C.Controller是二级控制器,负责派发,不能处理业务逻辑。
D.ModelAndView封装了业务处理结果和视图。

【正确答案】A,B,D
【答案解析】本题考查springmvc处理流程的理解。Controller可以将请求派发给其它bean来处理,也可以直接处理业务逻辑。
18.SpringMVC中DispatcherServlet的功能()

A.负责接收HTTP请求
B.加载配置文件
C.实现业务逻辑操作
D.web服务器的入口

【正确答案】A,B,D
【答案解析】此题考查SpringMVC中DispatcherServlet的功能
19.MyBatis实现一对多有几种方式?

A.是几个表联合查询,只查询一次,通过在resultMap里面配置collection节点配置一对多的类就可以完成。属于联合查询。
B.是几个表联合查询,只查询一次,通过在resultMap里面配置collection节点配置一对多的类就可以完成。属于集合查询。
C.是先查一个表,根据这个表里面的结果的外键id,去再另外一个表里面查询数据,也是通过配置collection,但另外一个表的查询通过select节点配置。属于联合查询。
D.是先查一个表,根据这个表里面的结果的外键id,去再另外一个表里面查询数据,也是通过配置collection,但另外一个表的查询通过select节点配置。属于集合查询。

【正确答案】A,D
【答案解析】MyBatis实现一对多的方式
20.SpringMVC配置文件中说法正确的是: ()

A.配置文件有默认的名称
B.配置文件的名称可以修改,但必须在过滤器中配置
C.配置文件中需要配置视图解析器
D.配置文件上传解析器时,id可以是任意的.

【正确答案】A,C
【答案解析】此题考查SpringMVC配置文件
21.实现AOP代理时,下面说法正确的是( )

A.Spring默认使用用于接口的JDK动态代理
B.Spring只能使用JDK动态代理
C.Spring也可以使用CGLIB代理
D.Spring中的AOP是基于动态代理实现的

【正确答案】A,C,D
【答案解析】此题考查AOP原理
22.Spring各模块之间关系,说法正确的是()

A.Spring各模块之间是紧密联系的,相互依赖的
B.Spring各模块之间可以单独存在
C.Spring的核心模块是必须的,其他模块是基于核心模块
D.Spring的核心模块不是必须的,可以选择性存在

【正确答案】B,C
【答案解析】考查对Spring的理解
23.下面关于@Resource注解说法正确的是

A.@Resource 注解可以用在字段上也可以用在set方法上
B.@Resource 注解默认按照类型进行装配
C.@Resource(name="personDao")注解表示用personDao的名称去查找bean的id节点的值是personDao的对象
D.@Resource注解默认按照名称进行装配

【正确答案】A,C,D
【答案解析】此题考查对Resource注解的使用
24.Spring中ApplicationContext能够用到的Bean的作用域都有哪些?

A.Singleton
B.Prototype
C.Session
D.Response

【正确答案】A,B,C
【答案解析】ABC
25.看下面的代码,说法正确的是()


com.xfaccp.before.BeforeInterface






beforeAdvisor



A.这段代码是做IOC
B.这段代码是做AOP
C.这段代码是在做代理
D.这段代码是在做植入

【正确答案】B,D
【答案解析】此题考查Spring理解
26.Bean的实例化有哪些方式( )。

A.使用构造器。
B.使用依赖注入。
C.使用静态工厂。
D.使用实例工厂。

【正确答案】A,C,D
【答案解析】此题目考查的是对容器如何创建bean实例的基础知识掌握。
依赖注入用来建立对象之间的依赖关系,不属于容器创建bean实例的方式。
27.REST即表述性状态传递,是一种软件架构编码风格,是基于网络应用进行设计和开发的编码方式,以下对于REST风格使用正确的有()

A.@RequestMapping("/msg/{xxx}")
请求的URL可以是“/msg/hello”或“/msg/welcome”
B.@RequestMapping("/msg/{id}/create"):
请求的URL可以是“/users/1/create”
C.@RequestMapping("/{xxx}/{id}/name/{tld}"):
请求的URL可以是“/users/1/create/2”
D.@RequestMapping("/msg/{mId}/topics/{tId}")
请求的URL可以是“/users/10/topics/12”

【正确答案】A,B,D
【答案解析】通过@PathVariable可以提取URI模板模式中的{×××}中的×××变量。

你可能感兴趣的:(后端)