选择题
- 以下关于Spring核心容器相关说法错误的是。( )
A: Spring框架的所有功能都是通过其核心容器来实现的。
B: 创建BeanFactory实例时,需要提供Spring所管理容器的详细配置信息,这些信息通常采用XML文件形式来管理。
C: ApplicationContext不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面的支持。
D: 通常在Java项目中,会采用通过ClassPathXmlApplicationContext类来实例化ApplicationContext容器的方式,而在Web项目中,ApplicationContext容器的实例化工作会交由Web服务器来完成。 - 以下有关Spring的四个基础包说法正确的是。( )
A: Spring的四个基础包,它们分别对应Spring Web容器的四个模块。
B: Spring的四个基础包有spring-core.RELEASE.jar、spring-beans-.RELEASE.jar、spring-context-.RELEASE.jar和spring-aop-.RELEASE.jar。
C: spring-context-.RELEASE.jar是所有应用都要用到的JAR包,它包含访问配置文件以及进行IoC或者DI操作相关的所有类。
D: spring-core.RELEASE.jar包含Spring框架基本的核心工具类,Spring其它组件都要用到这个包里的类,是其它组件的基本核心。 - 以下有关Spring框架优点的说法正确的是。( )
A: Spring具有简单、可测试和松耦合等特点,从这个角度出发,Spring就是应用于任何Java应用的开发中;
B: Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性
C: Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,杜绝了组件之间的耦合性
D: Spring增加了Java EE开发中一些API的使用难度 - Spring的核心容器是其他模块建立的基础,以下哪个不是该容器的组成模块。( )
A: Beans模块
B: Core模块
C: Context模块
D: AOP模块 - 下列选项中,不属于Spring框架优点的是。( )
A: 提供强大的、可以有效减少页面代码的标签
B: 声明式事务的支持。
C: 方便解耦、简化开发
D: 方便集成各种优秀框架 - Spring的元素中的autowire属性取值不包括以下。( )
A: default B: byName C: byType D: byId - 以下有关Bean的装配方式说法正确的是。( )
A: Spring容器支持多种形式的Bean的装配方式,如基于XML的装配、基于注解(Annotation)的装配和自动装配(其中最常用的是基于XML的装配);
B: Spring提供了3种基于XML的装配方式:设值注入、构造注入和属性注入;
C: 在Spring实例化Bean的过程中,Spring首先会调用Bean的默认构造方法来实例化Bean对象,然后通过反射的方式调用setter方法来注入属性值;
D: 设值注入要求一个Bean必须提供一个有参构造方法并且为需要注入的属性提供对应的setter方法。 - 以下哪些不属于Spring 4.3版本中Bean的作用域。( )
A: application B: request C: response D: globalSession - Spring中定义了一系列的注解,以下有关其常用的注解说明错误的是。( )
A: @Autowired用于对Bean的属性变量、属性的setter方法及构造方法进行标注,配合对应的注解处理器完成Bean的自动配置工作,默认按照Bean的名称进行装配。
B: @Repository用于将数据访问层(DAO层)的类标识为Spring中的Bean。
C: @Service通常作用在业务层(Service层),用于将业务层的类标识为Spring中的Bean。
D: @Controller通常作用在控制层(如Spring MVC的Controller),用于将控制层的类标识为Spring中的Bean。 - 下列选项中,不属于Spring中实例化Bean的方式的是。( )
A: 构造器实例化 B: 静态工厂方式实例化
C: 实例工厂方式实例化 D: 抽象方法实例化 - 以下不属于ProxyFactoryBean类中的常用可配置属性的是。( )
A: target
B: proxyInterfaces
C: targetClass
D: interceptorNames - 以下哪种类型不是Spring中的通知类型。( )
A: 异常通知
B: 前置通知
C: 后置通知
D: 最终通知 - 关于AspectJ注解的介绍,说法错误的是。( )
A: @Aspect用于定义一个切面
B: @Pointcut用于定义切入点表达式
C: @Before用于定义前置通知,相当于BeforeAdvice
D: @After用于定义后置通知,相当于AfterReturningAdvice - 以下有关CGLIB代理相关说法正确的是。( )
A: CGLIB代理的使用非常简单,但它还有一定的局限性——使用动态代理的对象必须实现一个或多个接口。
B: 如果要对没有实现接口的类进行代理,那么可以使用CGLIB代理。
C: CGLIB是一个高性能开源的代码生成包,在使用时需要另外导入CGLIB所需要的包。
D: Spring中的AOP代理,可以是JDK动态代理,也可以是CGLIB代理。 - 以下关于Spring AOP 的介绍错误的是。( )
A: AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)。
B: AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,这种采用横向抽取机制的方式,采用OOP思想是无法办到的。
C: 虽然AOP是一种新的编程思想,采取横向抽取机制,是OOP的升级替代品。
D: 目前最流行的AOP框架有两个,分别为Spring AOP和AspectJ。 - MyBatis的删除操作有关说发错误的是。( )
A: MyBatis的删除操作在映射文件中是通过配置<delete>元素来实现的。
B: MyBatis的删除操作也需要进行事务提交。
C: MyBatis的删除操作执行了SqlSession的delete()方法。
D: MyBatis的删除操作和添加操作时,也需要封装整个实体类。 - MyBatis的更新操作有关说发错误的是。( )
A: MyBatis的更新操作在映射文件中是通过配置<update>元素来实现的 。
B: MyBatis的更新操作也需要进行事务提交。
C: MyBatis的更新操作执行了SqlSession的update()方法 。
D: MyBatis的更新操作和添加操作时,只需要将insert()方法改为updat()方法即可。 - 关于MyBatis模糊查询中进行SQL字符串拼接时,说法错误的是。( )
A: 使用“${}”进行SQL字符串拼接时,无法防止SQL注入问题。
B: 可以使用MySQL中的concat()函数进行字符串拼接。
C: 使用MySQL中的concat()函数进行字符串拼接,也无法防止SQL注入。
D: 使用MySQL中的concat()函数进行字符串拼接,导致数据库移植性变差。 - 有关MyBatis工作原理说法错误的是。( )
A: MyBatis的全局配置文件配置了MyBatis的运行环境等信息,其中主要内容是获取数据库连接
B: MyBatis映射文件中配置了操作数据库的SQL语句,需要在MyBatis的全局配置文件中加载才能执行
C: 可以通过MyBatis的环境等配置信息构建会话对象SqlSession
D: SqlSession对象,该对象中包含了执行SQL的所有方法 - 使用ORM框架后,应用程序不再直接访问底层数据库,而是以( )的方式来操作持久化对象(PO,即Persisent Object)。
A: 面向业务B: Hibernate C: 面向对象 D: MyBatis - 以下有关<sql>元素说法错误的是。( )
A: <sql>元素的作用就是定义可重用的SQL代码片段,然后在其他语句中引用这一代码片段。
B: 使用<include>元素的refid属性可以引用自定义的代码片段。
C: 使用<include>元素refid的属性值为自定义代码片段的name。
D: <sql>元素是<mapper>元素的子元素。 - 以下有关MyBatis映射文件中<insert>元素说法正确的是。( )
A: <insert>元素用于映射插入语句,在执行完元素中定义的SQL语句后,没有返回结果。
B: <insert>元素的属性与元素的属性相同。
C: keyColumn属性用于设置第几列是主键,当主键列不是表中的第一列时需要设置。
D: useGeneratedKeys(仅对insert有用)此属性会使MyBatis使用JDBC的getGeneratedKeys()方法来获取由数据库内部生产的主键。 - 以下关于<select>元素及其属性说法错误的是。( )
A: <select>元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业务开发人员。
B: parameterType属性表示传入SQL语句的参数类的全限定名或者别名。
C: resultMap表示外部resultMap的命名引用,返回时可以同时使用resultType和resultMap
D: 在同一个映射文件中可以配置多个<select>元素。 - 关于<typeHandlers>元素说法错误的是。( )
A: <typeHandlers>元素就是用来在配置文件中注册自定义的类型处理器的,它的使用方式有两种。
B: 通过<typeHandlers>元素的子元素就可以配置单个类型处理器。
C: 通过<typeHandlers>元素的子元素<package>可以配置包下的所有类型处理器。
D: <typeHandlers>元素的子元素<package>的handler属性用于指定类型处理器所在的包名,系统会在启动时自动的扫描com.itheima.type包下所有的文件,并把它们作为类型处理器。 - 有关MyBatis配置文件中<settings>元素的说法错误的是。( )
A: <settings>元素主要用于改变MyBatis运行时的行为,例如开启二级缓存、开启延迟加载等。
B: 虽然不配置<settings>元素,也可以正常运行MyBatis,但是熟悉<settings>的配置内容以及它们的作用还是十分必要的。
C: <settings>元素中延迟加载的全局开关的参数lazyLoadingEnabled默认开启。
D: <settings>元素的配置内容大多数都不需要开发人员去配置它,通常在需要时只配置少数几项即可。 - 以下不属于<foreach>元素中使用的属性的是。( )
A: separator
B: collection
C: current
D: item - 以下关于<foreach>元素中使用的几种属性的描述错误的是。( )
A: item:配置的是循环中当前的元素。
B: index:配置的是当前元素在集合的位置下标。
C: collection:配置的是传递过来的参数类型,它可以是一个array、list(或collection)、Map集合的键、POJO包装类中数组或集合类型的属性名等。
D: separator:配置的是各个元素的间隔符。 - 以下关于MyBatis的<set>元素的使用及说法正确的是。( )
A: <set>元素主要用于更新操作,其主要作用是在动态包含的SQL语句前输出一个SET关键字,并将SQL语句中最后一个多余的逗号去除。
B: 使用MyBatis的<set>元素来更新操作时,前端需要传入所有参数字段,否则未传入字段会默认设置为空。
C: 在映射文件中使用<set>和<if>元素组合进行update语句动态SQL组装时, <set>元素内包含的内容可以都为空,<if>元素会进行判断处理。
D: 在映射文件进行更新操作时,只需要使用<set>元素就可以进行动态SQL组装。 - 以下有关MyBatis动态SQL中的主要元素说法错误的是。( )
A: <if>用于单条件分支判断。
B: <choose>(<when>、<otherwise>)用于多条件分支判断。
C: 循环语句,常用于in语句等列举条件中。
D: 从OGNL表达式中创建一个变量,并将其绑定到上下文,只于模糊查询的sql中。 - 当有多个选择的情况是,值需要从多个选项中选择一个去执行时,可以使用的动态SQL元素是。( )
A: <if>
B: <choose>、<when>、<otherwise>
C: <when>
D: <set> - MapperFactoryBean是MyBatis-Spring团队提供的用于根据Mapper接口生成Mapper对象的类,该类在Spring配置文件中可以配置的参数不包括。( )
A: mapperInterface
B: SqlSessionFactory
C: SqlSessionTemplate
D: basePackage - MapperScannerConfigurer类在Spring配置文件中使用时,可以配置的属性及说明错误的是。( )
A: basePackage:指定映射接口文件所在的包路径,当需要扫描多个包时可以使用分号或逗号作为分隔符。
B: annotationClass:指定了要扫描的注解名称,只有被注解标识的类才会被配置为映射器。
C: sqlSessionFactoryBeanName:指定在Spring中定义的SqlSessionFactory的Bean名称。
D: sqlSessionTemplateBeanName:指定在Spring中定义的SqlSessionTemplate的Bean名称。如果定义此属性,则sqlSessionFactoryBeanName将起作用 - 在MyBatis+Spring的项目中,以下有关事务的相关说法正确的是。( )
A: 在MyBatis+Spring的项目中,事务是由MyBatis来管理的。
B: 在项目中,数据访问层既是处理业务的地方,又是管理数据库事务的地方。
C: 进行注解开发时,需要在配置文件中配置事务管理器并开启事务注解。
D: 进行注解开发时,需要使用@Transactional注解来标识表现层中的类。 - 以下不属于MapperScannerConfigurer类,在Spring配置文件中使用时需要配置的属性的是。( )
A: basePackage
B: annotationClass
C: sqlSessionFactoryBeanName
D: mapperInterface - 以下有关采用传统DAO开发方式进行MyBatis与Spring框架的整合的说法错误的是。( )
A: 采用传统DAO开发方式进行MyBatis与Spring框架的整合时,只需要编写DAO接口。
B: 采用传统DAO开发方式进行MyBatis与Spring框架的整合时,需要向DAO实现类中注入SqlSessionFactory,然后在方法体内通过SqlSessionFactory创建SqlSession。
C: 可以使用mybatis-spring包中所提供的SqlSessionTemplate类或SqlSessionDaoSupport类来实现在类中注入SqlSessionFactory。
D: SqlSessionDaoSupport是一个抽象支持类,它继承了DaoSupport类,主要是作为DAO的基类来使用。可以通过SqlSessionDaoSupport类的getSqlSession()方法来获取所需的SqlSession。 - 下面关于Spring MVC特点说法错误的是。( )
A: 灵活性强,但不易于与其他框架集成
B: 可自动绑定用户输入,并能正确的转换数据类型
C: 支持国际化
D: 使用基于XML的配置文件,在编辑后,不需要重新编译应用程序 - Spring MVC中的后端控制器是指。( )
A: HandlerAdapter
B: DispatcherServlet
C: ViewReslover
D: Handler - 用户通过浏览器向服务器发送请求时,负责拦截用户请求的是。( )
A: 处理器
B: 处理器映射器
C: 处理器适配器
D: 前端控制器 - 入门程序中,不是必须引入的JAR包是。( )
A: Spring的4个核心JAR包
B: commons-logging的JAR包
C: spring-web和spring-webmvc的JAR包
D: log4j的JAR - Spring MVC是Spring提供的一个实现了( )设计模式的轻量级Web框架。
A: Web MVC
B: Web
C: 单例
D: 工厂 - 下面关于请求处理方法返回类型说法错误的是。( )
A: 常见的返回类型是ModelAndView、String和void
B: ModelAndView类型中可以添加Model数据,并指定视图
C: String类型的返回值可以跳转视图,但不能携带数据
D: void类型主要在异步请求时使用,它既返回数据,又跳转视图 - 下面类型中,不属于请求处理方法参数类型的是。( )
A: javax.servlet.http.HttpSession
B: @MatrixVariable
C: org.springframework.ui.Model
D: void - 下面关于组合注解的说法正确的是。( )
A: 组合注解是Spring3.x版本中的新特性
B: 组合注解可以简化常用的HTTP方法的映射
C: 在所有的Spring项目中,使用组合注解可以替代@RequestMapping注解
D: @GetMapping注解可以用来匹配GET和POST方式的请求 - 下面关于@RequestMapping注解说法错误的是。( )
A: @RequestMapping注解的默认属性是value
B: @RequestMapping注解的value属性值可以省略
C: @RequestMapping注解的value属性名可以省略
D: @RequestMapping注解的value属性必须标注 - 下面关于<load-on-startup>元素说法错误的是。( )
A: 如果<load-on-startup>元素的值为1,则在应用程序启动时会立即加载该Servlet
B: 如果<load-on-startup>元素不存在,则应用程序会在第一个Servlet请求时加载该Servlet
C: 如果<load-on-startup>元素的值为1,则在应用程序启动时会延迟加载该Servlet
D: <load-on-startup>元素是可选的 - 以下有关Spring MVC数据绑定中集合数据绑定的说法正确的是。( )
A:批量删除用户操作时,前端请求传递过来的参数就会包含多个相同类型的数据,此时可以采用数组类型数据绑定的形式
B:使用集合数据绑定需要后台方法中定义一个集合类型参数介绍绑定前端请求参数
C:绑定数组与绑定集合页面传递的参数相同,只是后台接收方法的参数不同
D:在使用集合数据绑定时,后台方法中不支持直接使用集合形参进行数据绑定 - 下面选项中,哪一个是Spring的编码过滤器类。( )
A: org.springframework.web.filter.EncodingFilter
B: org.springframework.web.filter.CharacterEncodingFilter
C: org.springframework.web.filter.CharacterEncoding
D: org.springframework.web.filter.CharacterFilter - @RequestParam注解中可以省略属性名称的是。( )
A: defaultValue
B: value
C: name
D: required - 下面关于包装POJO类型数据绑定的说法正确的是。( )
A: 如果查询条件参数是包装类的直接基本属性,则参数名直接用对应的属性名
B: 如果查询条件参数是包装类的直接基本属性,则参数名必须使用对应的“对象.属性名”
C: 如果查询条件参数是包装类中POJO的子属性,则参数名必须为属性名
D: 如果查询条件参数是包装类中POJO的子属性,则参数名必须为“对象.子属性.属性值”的形式 - 下面不属于@RequestParam注解类型属性的是。( )
A: id
B: value
C: name
D: required - 下列选项中,不需要配置在web.xml中的是。( )
A: Spring的监听器
B: 编码过滤器
C: 视图解析器
D: 前端控制器 - 下列选项中,属于Spring MVC所必须的JAR包的是。( )
A: spring-web-4.3.6.RELEASE.jar
B: spring-webmvc-portlet-4.3.6.RELEASE.jar
C: spring-webmvc-4.3.6.RELEASE-javadoc.jar
D: spring-websocket-4.3.6.RELEASE.jar - 下列选项中,不属于SSM整合时所需的JAR包的是。( )
A: spring-web-4.3.6.RELEASE.jar
B: spring-webmvc-4.3.6.RELEASE.jar
C: ant-1.9.6.jar
D: xwork-core-2.3.24.jar - 下列关于SSM框架的整合说法错误的是。( )
A:Spring MVC与Spring之间不存在整合的问题。
B:SSM框架的整合就涉及到Spring与MyBatis的整合。
C:SSM框架的整合就涉及到Spring MVC与MyBatis的整合。
D:SSM框架的整合就涉及到Spring MVC与Spring之间的整合。 - 下面选项中,不属于整合SSM框架所编写的配置文件的是。( )
A:db.properties
B:applicationContext.xml
C:mybatis-config.xml
D:struts.xml