Spring考试题

1.下面关于“依赖注入”的说法,错误的是( D )
A. 将组件间的依赖关系采取配置文件的方式管理,而不是硬编码在代码中
B. 降低了组件间的耦合,使程序更容易维护和升级
C. 促进了“面向接口编程”,使构建大规模程序更轻松
D. 需要定义大量接口,增加编码复杂度

2.下面关于Spring说法错误的是( D )
A. 支持前置、后置、环绕、异常抛出、最终增强
B. 采用代理方式实现
C. 与依赖注入紧密结合
D. 通过aop:pointcut与MyBatis结合

3.关于Spring说法错误的是( B )
A. Spring是一个轻量级框架
B. Spring颠覆了已经有较好解决方案的领域,如Hibernate
C. Spring可以实现与多种框架的无缝继承
D. Spring的核心机制是“依赖注入”

4.(多选)关于spring的说法正确的是( BD )
A. Spring是一个重量级框架
B. Spring是一个轻量级框架
C. Spring是一个入侵式框架
D. Spring是一个IOC和AOP容器

5.下面关于依赖注入说法正确的是( A )
A. 依赖注入的目标是在代码之外管理程序组件间的依赖关系
B. 依赖注入即“面向接口”编程
C. 依赖注入是面向对象技术的代替品
D. 依赖注入的使用会增大层序的规模

6.下面关于AOP的说法错误的是( C )
A. AOP将散落在系统中的“横切逻辑”进行集中实现
B. AOP有助于提高系统的可维护性
C. AOP已经表现出了将要代替面向对象的趋势
D. AOP是一种设计模式,Spring提供了一种实现

7.(多选)下面关于IOC的理解,正确的是( AB )
A. IOC就是控制反转
B. 对象被动接受依赖类
C. 对象主动去找依赖类
D. 一定要用接口

8.关于AOP的说法错误的是( B )
A. 首先要编写增强代码,前置增强可以通过MethodBeforeAdvice接口实现
B. Spring AOP采用拦截方法调用的方式实现,可以在调用的前、后等位置进行拦截
C. Spring AOP基于代理模式
D. Spring AOP可以在不对目标做任何修改的情况下增加程序功能

9.(多选)关于AOP的理解,正确的是( BC )
A. 面向纵向的开发
B. 面向横向的开发
C. AOP关注是面
D. AOP关注是点

10.Spring配置文件中有如下代码片段,则下面的说法正确的是( C )

<bean id=”printer” class=cn.jbit.spring.Printer>
  <property name=”color” value=”#fff”/>
</bean>

A. printer中一定有public String color
B. printer中一定有private String color
C. printer中一定有public void setColor(String color)
D. printer中一定有private void setColor(String color)

  1. (多选)以下属于Spring增强的是( ABCDE )
    A. BeforeAdvice
    B. AfterReturnAdvice
    C. AfterThrowing
    D. AroundLogger
    E. AfterLogger
    F. BeforeLogger

12.关于p命名空间的使用,说法错误的是( A )
A. 注入bean类型的用法是p:属性名=“bean的id”
B. 使用前需要在Spring配置文件中导入p命名空间
C. P命名空间是通过setter访问器实现的注入
D. 使用p命名空间可以简化依赖注入的配置工作

  1. (多选)下面关于切入点的说法正确的是( ACD )
    A. AOP是一系列连接点的集合
    B. 在做AOP时,定义切入点是必须的
    C. 在做AOP时,定义切入点不是必须的
    D. 可以用正则表达式来定义切入点

14.使用Spring IOC注入不同类型的参数,说法错误的是( C )
A. 可以用来注入值类型的数据
B. 用来引用其他Bean组件
C. 表示注入一个null值
D. 可以用来注入String类型的数据

  1. (多选)下面是Spring依赖注入的方式是( AB )
    A. set方法注入
    B. 构造方法的注入
    C. get方法的注入
    D. 接口的注入

  2. (多选)下面关于在Spring中配置Bean的id属性的说法正确的是( BD )
    A. id属性是必须,没有id属性就会报错
    B. id属性不是必须的,可以没有
    C. id属性的值可以重复
    D. id属性的值不可以重复

17.使用Schema方式配置切面,下列说法正确的是( A )
A. 包含增强方法的类可以使一个普通的JavaBean
B. Spring配置文件中使用aop:advisor元素定义切面
C. Spring配置文件中定义切面时需要指定对应的增强方法
D. 为增强方法注入连接点信息时,需要在配置文件中声明参数名称

18.在web.xml文件中配置Spring框架,下面配置正确的是( D )
A.

<context-param> 
      <param-name>configparam-name> 
<param-value>classpath:applicationContext.xmlparam-value>
context-param> 

B.

<context-param> 
      <param-name>servletConfigparam-name> 
      <param-value> classpath:applicationContext.xmlparam-value>
 context-param> 

C.

<context-param> 
      <param-name>contextconfigparam-name> 
      <param-value> classpath:applicationContext.xmlparam-value>  
context-param> 

D.

<context-param> 
       <param-name>contextConfigLocationparam-name> 
       <param-value>classpath:applicationContext.xmlparam-value>
context-param> 
  1. (多选)下面是IOC自动装载方法的是( ABC )
    A. byName
    B. byType
    C. constructor
    D. byMethod

20.下面关于构造注入优点说法错误的是( C )
A. 构造期即创建一个完整、合法的对象
B. 不需要写繁琐的setter方法的
C. 对于复杂的依赖关系,构造注入更简洁,直观
D. 在构造函数中决定依赖关系的注入顺序

  1. (多选)下面关于Spring配置文件说话正确的是( BC )
    A. Spring配置文件必须叫applicationContext.xml
    B. Spring配置文件可以不叫applicationContext.xml
    C. Spring配置文件可以有多个
    D. Spring配置文件只能有一个

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

23.Spring IOC容器管理Action的监听器是( C )
A. 使用org.springframework.web.struts.DelegatingRequestProcessor
B. 使用org.springframework.web.struts.DelegatingActionProxy
C. 使用org.springframework.web.context.ContextLoaderListener
D. 使用org.springframework.web.context.ContextLoaderServlet

24.(多选)在SQL映射文件中有如下配置,通过SqlSessionTemplate.getMapper()方法可以获取映射接口,下列说法正确的是( AB )。

<mapper namespace="cn.jbit.jboa.dao.EmployeeDao">
  <select id="countAll" resultType="int">
  		SELECT count(*) FROM sys_employee
  select>
mapper>

A.在cn.jbit.jboa.dao包中存在数据接口EmployeeDao
B.接口EmployeeDao里有方法 countAll()
C.EmployeeDao一定不能有实现类,否则会出错
D.SQL映射文件的名字是一定EmployeeDaoMapper.xml

25.(多选)将映射接口(cn. DepartmentDao)转化为Spring Bean,下列配置正确的是( AC )。
A.

<bean id="departDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
    <property name="mapperInterface" value="cn. DepartmentDao"/>
    <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
bean>

B.

<bean id="departDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
    <property name="mapperInterface" value="cn.DepartmentDao"/>
bean>

C.

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
<property name="basePackage" value="cn.dao"/>
bean>

D.

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
    <property name="mapperPackage" value="cn.dao"/>
bean>
  1. (多选)下列说法正确的是( ABCD )
    A. Spring是分层的架构,可以选择使用需要的层而不用管不需要的部分
    B. 依赖注入和IoC使得JDBC操作简单化
    C. Spring是开源的免费的
    D. Spring使得对象管理集中化和简单化

27.关于Spring集成MyBatis说法错误的是( A )。
A.Spring提供了mybatis-spring Jar包实现了MyBatis的整合
B.在Spring配置SqlSessioinTemplate,注入到Dao实现类,实现对数据库的操作
C.可以没有Dao的实现类,采用MapperFactoryBean实现数据映射接口的定义
D.在Spring配置SqlSessionFactoryBean, 使用mppaerLocations属性,加载整个包下的SQL映射文件。

  1. 一个UserDao的实现类代码如下:
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
	public void add(User user){
		super.getHibernateTemplate().save(user);
	}
}

其在Spring配置文件中配置如下:

<bean id="userDao" class="cn. ssh.dao.impl.UserDaoImpl">
	<property name="sessionFactory" ref="sessionFactory" />
bean>

那么对于以上代码和配置文件,下面说法中正确的是( D )。
A. 为保证程序正确运行,UserDaoImpl类中必须再添加一个名为sessionFactory的属性以及相应的getter和setter方法
B. 为保证程序正确运行,通过Spring注入的不能是SessionFactory对象,而应该是HibernateTemplate对象,否则add方法中调用getHibernateTemplate方法会返回null
C. add方法中调用getHibernateTemplate方法会产生错误,为保证程序正确运行,应该调用getSessionFactory方法执行添加操作
D. 为保证程序正确运行,在Spring配置文件中应存在id为sessionFactory的会话工厂Bean

你可能感兴趣的:(spring,spring,java,mybatis)