第1章 Spring的基本应用
习题
一、 填空题
1. 依赖注入的作用就是在使用Spring框架创建对象时,动态的将其所依赖的对象注入到【 】组件中。
2. 在使用Spring框架之后,对象的实例不再由调用者来创建,而是由【 】来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。
3. 在Spring入门程序中只需将Spring的4个基础包以及【 】的JAR包复制到lib目录中,并发布到类路径下即可。
4. 简单来说,BeanFactory就是一个管理Bean的工厂,它主要负责初始化各种Bean,并调用它们的【 】方法。
5. Spring开发所需的JAR包分为两个部分:【 】和【 】。
二、 判断题
1. Spring中基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。( )
2. 通常在Java项目中,会采用通过FileSystemXmlApplicationContext类来实例化ApplicationContext容器的方式。( )
3. 初学者学习Spring框架时,只需将Spring的4个基础包以及commons-logging.jar复制到项目的lib目录,并发布到类路径中即可。( )
4. 依赖注入的作用就是在使用Spring框架创建对象时,动态的将其所依赖的对象注入到Bean组件中。( )
5. Spring框架采用的是分层架构,它一系列的功能要素被分成20个模块。( )
三、 选择题
1. 以下关于Spring核心容器相关说法错误的是。( )
A: Spring框架的所有功能都是通过其核心容器来实现的。
B: 创建BeanFactory实例时,需要提供Spring所管理容器的详细配置信息,这些信息通常采用XML文件形式来管理。
C: ApplicationContext不仅包含了BeanFactory的所有功能,还添加了对国际化、资源访问、事件传播等方面的支持。
D: 通常在Java项目中,会采用通过ClassPathXmlApplicationContext类来实例化ApplicationContext容器的方式,而在Web项目中,ApplicationContext容器的实例化工作会交由Web服务器来完成。
2. 以下有关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其它组件都要用到这个包里的类,是其它组件的基本核心。
3. 以下有关Spring框架优点的说法正确的是。( )
A: Spring具有简单、可测试和松耦合等特点,从这个角度出发,Spring就是应用于任何Java应用的开发中;
B: Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行集中式处理,从而提高了程序的复用性
C: Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器管理,杜绝了组件之间的耦合性
D: Spring增加了Java EE开发中一些API的使用难度
4. Spring的核心容器是其他模块建立的基础,以下哪个不是该容器的组成模块。( )
A: Beans模块
B: Core模块
C: Context模块
D: AOP模块
5. 下列选项中,不属于Spring框架优点的是。( )
A: 提供强大的、可以有效减少页面代码的标签
B: 声明式事务的支持。
C: 方便解耦、简化开发
D: 方便集成各种优秀框架
答案
一、 填空题
1. Bean
2. Spring容器
3. commons-logging
4. 生命周期
5. Spring框架包、第三方依赖包
二、 判断题
1. 对
2. 错
3. 对
4. 对
5. 对
三、 选择题
1. A
2. D
3. B
4. D
5. A
第2章 Spring中的Bean
习题
一、 填空题
1. 所谓自动装配,就是将一个Bean自动的注入到到其他Bean的【 】中。
2. @Controller通常作用在控制层,如Spring MVC的【 】,用于将控制层的类标识为Spring中的Bean,其功能与@Component 相同。
3. 【 】注解用于将数据访问层(DAO层)的类标识为Spring中的Bean,其功能与@Component 相同。
4. 对于【 】作用域的Bean,Spring只负责创建,当容器创建了Bean实例后,Bean的实例就交给客户端代码来管理,Spring容器将不再跟踪其生命周期。
5. 实例工厂方式采用直接创建Bean实例的方式,在配置文件中,需要实例化的Bean是通过【 】属性指向配置的实例工厂,然后使用factory-method属性确定使用工厂中的哪个方法。
二、 判断题
1. @Component注解用于描述Spring中的Bean,它是一个泛化的概念,仅仅表示一个组件,并且可以作用在任何层次,使用时只需将该注解标注在相应方法上即可。( )
2. Spring提供了3种基于XML的装配方式:设值注入、构造注入和属性注入。( )
3. 每次客户端请求singleton作用域的Bean时,Spring容器都会创建一个新的实例,并且不会管那些被配置成singleton作用域的Bean的生命周期。( )
4. Spring中使用prototype定义的Bean在Spring容器中将只有一个实例,也就是说,无论有多少个Bean引用它,始终将指向同一个对象。( )
5. 对于prototype作用域的Bean,Spring只负责创建,当容器创建了Bean实例后,Bean的实例就交给客户端代码来管理,Spring容器将不再跟踪其生命周期。( )
三、 选择题
1. Spring的<bean>元素中的autowire属性取值不包括以下。( )
A: default B: byName C: byType D: byId
2. 以下有关Bean的装配方式说法正确的是。( )
A: Spring容器支持多种形式的Bean的装配方式,如基于XML的装配、基于注解(Annotation)的装配和自动装配(其中最常用的是基于XML的装配);
B: Spring提供了3种基于XML的装配方式:设值注入、构造注入和属性注入;
C: 在Spring实例化Bean的过程中,Spring首先会调用Bean的默认构造方法来实例化Bean对象,然后通过反射的方式调用setter方法来注入属性值;
D: 设值注入要求一个Bean必须提供一个有参构造方法并且为需要注入的属性提供对应的setter方法。
3. 以下哪些不属于Spring 4.3版本中Bean的作用域。( )
A: application B: request C: response D: globalSession
4. Spring中定义了一系列的注解,以下有关其常用的注解说明错误的是。( )
A: @Autowired用于对Bean的属性变量、属性的setter方法及构造方法进行标注,配合对应的注解处理器完成Bean的自动配置工作,默认按照Bean的名称进行装配。
B: @Repository用于将数据访问层(DAO层)的类标识为Spring中的Bean。
C: @Service通常作用在业务层(Service层),用于将业务层的类标识为Spring中的Bean。
D: @Controller通常作用在控制层(如Spring MVC的Controller),用于将控制层的类标识为Spring中的Bean。
5. 下列选项中,不属于Spring中实例化Bean的方式的是。( )
A: 构造器实例化 B: 静态工厂方式实例化
C: 实例工厂方式实例化 D: 抽象方法实例化
答案
一、 填空题
1. Property
2. Controller
3. @Repository
4. prototype
5. factory-bean
二、 判断题
1. 错
2. 错
3. 错
4. 错
5. 对
三、 选择题
1. D
2. C
3. C
4. A
5. D
第3章Spring AOP
习题
一、 填空题
1. AspectJ框架中注解【 】用于定义切入点表达式,在使用时还需定义一个包含名字和任意参数的方法签名来表示切入点名称。
2. 在Spring配置文件中,<aop:aspect>子元素的pointcut-ref属性用于指定一个已经存在的【 】。
3. 在Spring的配置文件中,配置切面使用的是【 】元素。
4. 在Spring中,使用【 】是创建AOP代理的基本方式。
5. AOP术语中【 】表示AOP框架在特定的切入点执行的增强处理,即在定义好的切入点处所要执行的程序代码。
二、 判断题
1. 如果在同一个连接点有多个通知需要执行,那么在同一切面中,目标方法之前的前置通知和环绕通知的执行顺序是未知的,目标方法之后的后置通知和环绕通知的执行顺序也是未知的。( )
2. AspectJ框架中的注解@After用于定义最终final通知,不管是否异常,该通知都会执行。( )
3. Spring配置文件中的<beans>元素下可以包含多个<aop:config>元素,一个<aop:config>元素中又可以包含属性和子元素,其子元素包括<aop:pointcut>、<aop:advisor>和<aop:aspect>。( )
4. Spring中的AOP代理默认就是使用CGLIB代理的方式来实现的。( )
5. Spring 3.0以后,Spring AOP引入了对AspectJ的支持,并允许直接使用AspectJ进行编程,而Spring自身的AOP API也尽量与AspectJ保持一致。( )
三、 选择题
1. 以下不属于ProxyFactoryBean类中的常用可配置属性的是。( )
A: target
B: proxyInterfaces
C: targetClass
D: interceptorNames
2. 以下哪种类型不是Spring中的通知类型。( )
A: 异常通知
B: 前置通知
C: 后置通知
D: 最终通知
3. 关于AspectJ注解的介绍,说法错误的是。( )
A: @Aspect用于定义一个切面
B: @Pointcut用于定义切入点表达式
C: @Before用于定义前置通知,相当于BeforeAdvice
D: @After用于定义后置通知,相当于AfterReturningAdvice
4. 以下有关CGLIB代理相关说法正确的是。( )
A: CGLIB代理的使用非常简单,但它还有一定的局限性——使用动态代理的对象必须实现一个或多个接口。
B: 如果要对没有实现接口的类进行代理,那么可以使用CGLIB代理。
C: CGLIB是一个高性能开源的代码生成包,在使用时需要另外导入CGLIB所需要的包。
D: Spring中的AOP代理,可以是JDK动态代理,也可以是CGLIB代理。
5. 以下关于Spring AOP 的介绍错误的是。( )
A: AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程)。
B: AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,这种采用横向抽取机制的方式,采用OOP思想是无法办到的。
C: 虽然AOP是一种新的编程思想,采取横向抽取机制,是OOP的升级替代品。
D: 目前最流行的AOP框架有两个,分别为Spring AOP和AspectJ。
答案
一、 填空题
1. @Pointcut
2. 切入点名称
3. <aop:aspect>
4. ProxyFactoryBean
5. Advice
二、 判断题
1. 对
2. 对
3. 对
4. 错
5. 错
三、 选择题
1. C
2. D
3. D
4. C
5. C
第6章 初识MyBatis
习题
一、 填空题
1. MyBatis的删除操作在映射文件中是通过配置【 】元素来实现的。
2. MyBatis映射文件中<mapper>元素是配置文件的根元素,它包含一个【 】属性,该属性为这个<mapper>指定了唯一的命名空间。
3. 使用MySQL中的【 】函数进行字符串拼接,可以有效防止模糊查询时可能出现的SQL注入问题。
4. mybatis-config.xml作为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,其中主要内容是获取【 】。
5. 【 】是当前主流的Java持久层框架之一,它与Hibernate一样,也是一种ORM框架。
二、 判断题
1. MyBatis映射文件中<mappers>元素是配置文件的根元素,它包含一个namespace属性,该属性为这个<mapper>指定了唯一的命名空间。( )
2. 使用MyBatis框架非常简单,只需在应用程序中引入MyBatis框架lib目录中的全部JAR包以及数据库驱动包即可进行项目运行。( )
3. ORM就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。( )
4. MyBatis的更新操作也需要进行事务提交。( )
5. 创建的映射文件中的SQL语句要以面向对象的写法进行书写。( )
三、 选择题
1. MyBatis的删除操作有关说发错误的是。( )
A: MyBatis的删除操作在映射文件中是通过配置<delete>元素来实现的。
B: MyBatis的删除操作也需要进行事务提交。
C: MyBatis的删除操作执行了SqlSession的delete()方法。
D: MyBatis的删除操作和添加操作时,也需要封装整个实体类。
2. MyBatis的更新操作有关说发错误的是。( )
A: MyBatis的更新操作在映射文件中是通过配置<update>元素来实现的 。
B: MyBatis的更新操作也需要进行事务提交。
C: MyBatis的更新操作执行了SqlSession的update()方法 。
D: MyBatis的更新操作和添加操作时,只需要将insert()方法改为updat()方法即可。
3. 关于MyBatis模糊查询中进行SQL字符串拼接时,说法错误的是。( )
A: 使用“${}”进行SQL字符串拼接时,无法防止SQL注入问题。
B: 可以使用MySQL中的concat()函数进行字符串拼接。
C: 使用MySQL中的concat()函数进行字符串拼接,也无法防止SQL注入。
D: 使用MySQL中的concat()函数进行字符串拼接,导致数据库移植性变差。
4. 有关MyBatis工作原理说法错误的是。( )
A: MyBatis的全局配置文件配置了MyBatis的运行环境等信息,其中主要内容是获取数据库连接
B: MyBatis映射文件中配置了操作数据库的SQL语句,需要在MyBatis的全局配置文件中加载才能执行
C: 可以通过MyBatis的环境等配置信息构建会话对象SqlSession
D: SqlSession对象,该对象中包含了执行SQL的所有方法
5. 使用ORM框架后,应用程序不再直接访问底层数据库,而是以()的方式来操作持久化对象(PO,即Persisent Object)。( )
A: 面向业务B: Hibernate C: 面向对象 D: MyBatis
答案
一、 填空题
1. <delete>
2. namespace
3. concat()
4. 数据库连接
5. MyBatis
二、 判断题
1. 错
2. 错
3. 对
4. 对
5. 错
三、 选择题
1. D
2. D
3. C
4. C
5. C
第7章 MyBatis的核心配置
习题
一、 填空题
1. 当数据表中的列和需要返回的对象的属性不完全一致, MyBatis是不会自动赋值的。此时,就可以使用【 】元素进行处理。
2. <resultMap>元素的子元素<id>用于表示哪个列是【 】,而【 】元素用于表示POJO和数据表中普通列的映射关系。
3. MyBaits映射文件中使用<include>元素的【 】属性可以引用自定义的代码片段,其属性值为自定义代码片段的id。
4. MyBatis映射文件中<insert>的<selectKey>子元素的order属性可以被设置为【 】或【 】。
5. 对于数据源的配置,MyBatis框架提供了UNPOOLED、【 】和JNDI三种数据源类型。
二、 判断题
1. <resultMap>的子元素<association>和<collection>用于处理多表时的关联关系。( )
2. MyBatis映射文件的<insert>元素的属性与<select>元素的属性大部分相同,但还包含了3个特有属性。( )
3. MyBatis框架提供了许多默认别名,由于别名不区分大小写,所以在使用时要注意重复定义的覆盖问题。( )
4. 映射文件中可以包含多个id值相同的<resultMap>元素。( )
5. 与<insert>元素一样,<update>和<delete>元素在执行完之后,也会返回一个表示影响记录条数的整数。( )
三、 选择题
1. 以下有关<sql>元素说法错误的是。( )
A: <sql>元素的作用就是定义可重用的SQL代码片段,然后在其他语句中引用这一代码片段。
B: 使用<include>元素的refid属性可以引用自定义的代码片段。
C: 使用<include>元素refid的属性值为自定义代码片段的name。
D: <sql>元素是<mapper>元素的子元素。
2. 以下有关MyBatis映射文件中<insert>元素说法正确的是。( )
A: <insert>元素用于映射插入语句,在执行完元素中定义的SQL语句后,没有返回结果。
B: <insert>元素的属性与<select>元素的属性相同。
C: keyColumn属性用于设置第几列是主键,当主键列不是表中的第一列时需要设置。
D: useGeneratedKeys(仅对insert有用)此属性会使MyBatis使用JDBC的getGeneratedKeys()方法来获取由数据库内部生产的主键。
3. 以下关于<select>元素及其属性说法错误的是。( )
A: <select>元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业务开发人员。
B: parameterType属性表示传入SQL语句的参数类的全限定名或者别名。
C: resultMap表示外部resultMap的命名引用,返回时可以同时使用resultType和resultMap
D: 在同一个映射文件中可以配置多个<select>元素。
4. 关于<typeHandlers>元素说法错误的是。( )
A: <typeHandler>元素就是用来在配置文件中注册自定义的类型处理器的,它的使用方式有两种。
B: 通过<typeHandlers>元素的子元素<typeHandler>就可以配置单个类型处理器。
C: 通过<typeHandlers>元素的子元素<package>可以配置包下的所有类型处理器。
D: <typeHandlers>元素的子元素<package>的handler属性用于指定类型处理器所在的包名,系统会在启动时自动的扫描com.itheima.type包下所有的文件,并把它们作为类型处理器。
5. 有关MyBatis配置文件中<settings>元素的说法错误的是。( )
A: <settings>元素主要用于改变MyBatis运行时的行为,例如开启二级缓存、开启延迟加载等。
B: 虽然不配置<settings>元素,也可以正常运行MyBatis,但是熟悉<settings>的配置内容以及它们的作用还是十分必要的。
C: <settings>元素中延迟加载的全局开关的参数lazyLoadingEnabled默认开启。
D: <settings>元素的配置内容大多数都不需要开发人员去配置它,通常在需要时只配置少数几项即可。
答案
一、 填空题
1. <resultMap>
2. 主键 、 <result>
3. refid
4. BEFORE 、AFTER
5. POOLED
二、 判断题
1. 对
2. 对
3. 对
4. 错
5. 对
三、 选择题
1. C
2. C
3. C
4. D
5. C
第8章 动态SQL
习题
一、 填空题
1. 当在MyBaits文件中使用了<bind>元素,在SQL语句中可以直接引用<bind>元素的【 】属性值即可进行动态SQL组装。
2. 在使用MyBaits的<foreach>时,如果传入的参数是多个的时候,就需要把它们封装成一个Map了,这时候collection属性值就为Map的【 】。
3. 在MyBaits映射文件中使用<set>和<if>元素组合进行update语句动态SQL组装时,如果<set>元素内包含的内容都为空,则会出现【 】。
4. MyBaits中<trim>元素的作用是去除一些特殊的字符串,它的【 】属性代表的是语句的前缀,而prefixOverrides属性代表的是需要去除的哪些特殊字符串。
5. 使用<set>和<if>元素相结合的方式来组装update语句时,<set>元素就会动态前置【 】关键字,同时也会消除SQL语句中最后一个多余的【 】。
二、 判断题
1. 可以将任何可迭代对象(如列表、集合等)和任何的字典或者数组对象传递给<foreach>作为集合参数。( )
2. 在MyBaits映射文件中使用<set>和<if>元素组合进行update语句动态SQL组装时,如果<set>元素内包含的内容都为空,则会出现SQL语法错误。( )
3. MyBaits中对原始SQL中的“where 1=1”的条件可以使用<where>与<if>元素组合进行替换。( )
4. 在MyBatis中<if>元素用于单条件分支判断,当某个<if>的test属性判断成立,然后跳过其他<if>元素进行动态SQL组装。( )
5. MyBatis中的<foreach>元素可以用于对数组和集合循环遍历,批量执行SQL操作。( )
三、 选择题
1. 以下不属于<foreach>元素中使用的属性的是。( )
A: separator
B: collection
C: current
D: item
2. 以下关于<foreach>元素中使用的几种属性的描述错误的是。( )
A: item:配置的是循环中当前的元素。
B: index:配置的是当前元素在集合的位置下标。
C: collection:配置的是传递过来的参数类型,它可以是一个array、list(或collection)、Map集合的键、POJO包装类中数组或集合类型的属性名等。
D: separator:配置的是各个元素的间隔符。
3. 以下关于MyBatis的<set>元素的使用及说法正确的是。( )
A: <set>元素主要用于更新操作,其主要作用是在动态包含的SQL语句前输出一个SET关键字,并将SQL语句中最后一个多余的逗号去除。
B: 使用MyBatis的<set>元素来更新操作时,前端需要传入所有参数字段,否则未传入字段会默认设置为空。
C: 在映射文件中使用<set>和<if>元素组合进行update语句动态SQL组装时, <set>元素内包含的内容可以都为空,<if>元素会进行判断处理。
D: 在映射文件进行更新操作时,只需要使用<set>元素就可以进行动态SQL组装。
4. 以下有关MyBatis动态SQL中的主要元素说法错误的是。( )
A: <if>用于单条件分支判断。
B: <choose>(<when>、<otherwise>)用于多条件分支判断。
C: <foreach>循环语句,常用于in语句等列举条件中。
D: <bind>从OGNL表达式中创建一个变量,并将其绑定到上下文,只于模糊查询的sql中。
5. 当有多个选择的情况是,值需要从多个选项中选择一个去执行时,可以使用的动态SQL元素是。( )
A: <if>
B: <choose>、<when>、<otherwise>
C: <when>
D: <set>
答案
一、 填空题
1. name
2. 键
3. SQL语法错误
4. prefix
5. SET 、逗号
二、 判断题
1. 对
2. 对
3. 对
4. 错
5. 对
三、 选择题
1. C
2. C
3. A
4. D
5. B
第10章 MyBatis与Spring的整合
习题
一、 填空题
1. 在MyBatis+Spring的项目中,事务是由【 】来管理的。
2. MyBatis-Spring团队提供了一种自动扫描的形式来配置MyBatis中的映射器——采用【 】类。
3. 【 】是MyBatis-Spring团队提供的一个用于根据Mapper接口生成Mapper对象的类。
4. SqlSessionDaoSupport是一个抽象支持类,可以通过SqlSessionDaoSupport类的【 】方法来获取所需的SqlSession。
5. 在进行Spring与MyBatis整合时,Spring框架所需要准备的JAR包共10个,其中包括:4个核心模块JAR,AOP开发使用的JAR,【 】和事务的JAR。
二、 判断题
1. MapperFactoryBean的参数SqlSessionTemplate用于指定SqlSessionTemplate。如果与SqlSessionFactory同时设定,则只会启用SqlSessionFactory。( )
2. MyBaits与Spring进行整合时,Dao层开发可以使用传统的DAO方式的开发整合,以及Mapper接口方式的开发整合。( )
3. 可以使用mybatis-spring包中所提供的SqlSessionTemplate类或SqlSessionDaoSupport类来实现向DAO实现类中注入SqlSessionFactory。( )
4. 在实际的项目开发中,Spring与MyBatis都是整合在一起使用的。( )
5. MapperFactoryBean是MyBatis-Spring团队提供的一个用于根据Mapper接口生成Mapper对象的类。( )
三、 选择题
1. MapperFactoryBean是MyBatis-Spring团队提供的用于根据Mapper接口生成Mapper对象的类,该类在Spring配置文件中可以配置的参数不包括。( )
A: mapperInterface
B: SqlSessionFactory
C: SqlSessionTemplate
D: basePackage
2. MapperScannerConfigurer类在Spring配置文件中使用时,可以配置的属性及说明错误的是。( )
A: basePackage:指定映射接口文件所在的包路径,当需要扫描多个包时可以使用分号或逗号作为分隔符。
B: annotationClass:指定了要扫描的注解名称,只有被注解标识的类才会被配置为映射器。
C: sqlSessionFactoryBeanName:指定在Spring中定义的SqlSessionFactory的Bean名称。
D: sqlSessionTemplateBeanName:指定在Spring中定义的SqlSessionTemplate的Bean名称。如果定义此属性,则sqlSessionFactoryBeanName将起作用
3. 在MyBatis+Spring的项目中,以下有关事务的相关说法正确的是。( )
A: 在MyBatis+Spring的项目中,事务是由MyBatis来管理的。
B: 在项目中,数据访问层既是处理业务的地方,又是管理数据库事务的地方。
C: 进行注解开发时,需要在配置文件中配置事务管理器并开启事务注解。
D: 进行注解开发时,需要使用@Transactional注解来标识表现层中的类。
4. 以下不属于MapperScannerConfigurer类,在Spring配置文件中使用时需要配置的属性的是。( )
A: basePackage
B: annotationClass
C: sqlSessionFactoryBeanName
D: mapperInterface
5. 以下有关采用传统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。
答案
一、 填空题
1. Spring
2. MapperScannerConfigurer
3. MapperFactoryBean
4. getSqlSession()
5. JDBC
二、 判断题
1. 错
2. 对
3. 对
4. 对
5. 对
三、 选择题
1. D
2. D
3. C
4. D
5. A
第11章 Spring MVC入门
习题
一、 填空题
1. 前端控制器拦截请求后,会调用【 】。
2. Spring MVC支持多种视图技术,包括【 】、Velocity和FreeMarker等。
3. Spring MVC的配置文件中,可以配置处理器映射、处理器映射器、处理器适配器和【 】。
4. Spring MVC提供了一个前端控制器【 】,使开发人员无需额外开发控制器对象。
5. 在Spring MVC的执行流程中,Controller执行完成后,会返回一个【 】对象。
二、 判断题
1. HandlerAdapter将ModelAndView对象返回给ViewReslover。( )
2. Spring4.3版本的配置文件中,必须要配置处理器映射器、处理器适配器和视图解析器,否则程序将无法运行。( )
3. <load-on-startup>元素中的1表示容器在启动时立即加载这个Servlet。( )
4. Spring MVC支持JSP、Velocity、XML和FreeMarker等视图技术。( )
5. Spring MVC的灵活性比较弱,易于与其他框架集成。( )
三、 选择题
1. 下面关于Spring MVC特点说法错误的是。( )
A: 灵活性强,但不易于与其他框架集成
B: 可自动绑定用户输入,并能正确的转换数据类型
C: 支持国际化
D: 使用基于XML的配置文件,在编辑后,不需要重新编译应用程序
2. Spring MVC中的后端控制器是指。( )
A: HandlerAdapter
B: DispatcherServlet
C: ViewReslover
D: Handler
3. 用户通过浏览器向服务器发送请求时,负责拦截用户请求的是。( )
A: 处理器
B: 处理器映射器
C: 处理器适配器
D: 前端控制器
4. 入门程序中,不是必须引入的JAR包是。( )
A: Spring的4个核心JAR包
B: commons-logging的JAR包
C: spring-web和spring-webmvc的JAR包
D: log4j的JAR
5. Spring MVC是Spring提供的一个实现了( )设计模式的轻量级Web框架。
A: Web MVC
B: Web
C: 单例
D: 工厂
答案
一、 填空题
1. HandlerMapping
2. JSP
3. 视图解析器
4. DispatcherServlet
5. ModelAndView
二、 判断题
1. 错
2. 错
3. 对
4. 错
5. 错
三、 选择题
1. A
2. D
3. D
4. D
5. A
第12章 Spring MVC的核心类和注解
习题
一、 填空题
1. RequestMapping注解类型用于映射【 】。
2. 在使用Spring MVC的注解开发时,除了需要引入Spring的核心JAR包、Commons-logging的JAR包以及Spring MVC的2个JAR包外,还需要引入【 】的JAR包。
3. 在视图解析器配置中,可以设置视图的【 】。
4. 如果没有通过<init-param>元素配置,则应用程序会默认去【 】寻找配置文件。
5. 如果<load-on-startup>元素不存在,则应用程序会【 】加载该Servlet。
二、 判断题
1. 在控制器类中,每一个请求处理方法都可以有多个不同类型的参数,以及一个多种类型的返回结果。( )
2. @RequestMapping的method属性必须使用。( )
3. @RequestMapping(method = RequestMethod.GET)可以缩写为@GetMapping。( )
4. @RequestMapping注解的属性都是可选属性。( )
5. Web.xml文件中必须使用<load-on-startup>元素和<init-param>元素,否则文件会报错。( )
三、 选择题
1. 下面关于请求处理方法返回类型说法错误的是。( )
A: 常见的返回类型是ModelAndView、String和void
B: ModelAndView类型中可以添加Model数据,并指定视图
C: String类型的返回值可以跳转视图,但不能携带数据
D: void类型主要在异步请求时使用,它既返回数据,又跳转视图
2. 下面类型中,不属于请求处理方法参数类型的是。( )
A: javax.servlet.http.HttpSession
B: @MatrixVariable
C: org.springframework.ui.Model
D: void
3. 下面关于组合注解的说法正确的是。( )
A: 组合注解是Spring3.x版本中的新特性
B: 组合注解可以简化常用的HTTP方法的映射
C: 在所有的Spring项目中,使用组合注解可以替代@RequestMapping注解
D: @GetMapping注解可以用来匹配GET和POST方式的请求
4. 下面关于@RequestMapping注解说法错误的是。( )
A: @RequestMapping注解的默认属性是value
B: @RequestMapping注解的value属性值可以省略
C: @RequestMapping注解的value属性名可以省略
D: @RequestMapping注解的value属性必须标注
5. 下面关于<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>元素是可选的
答案
一、 填空题
1. 一个请求或一个方法
2. Spring AOP
3. 前缀和后缀
4. WEB-INF目录下
5. 在第一个Servlet请求时
二、 判断题
1. 对
2. 错
3. 对
4. 对
5. 错
三、 选择题
1. D
2. D
3. B
4. D
5. C
第13章 数据绑定
习题
一、 填空题
1. 在使用集合数据绑定时,后台方法中不支持直接使用集合形参进行数据绑定,所以需要使用包装POJO作为形参,然后在包装POJO中包装一个【 】属性。
2. 使用包装POJO类型数据绑定时,如果前端条件参数是包装类中POJO的子属性,则参数名必须为【 】。
3. 当前端请求的参数比较简单时,可以在后台方法的形参中直接使用Spring MVC提供的【 】类型进行数据绑定。
4. 如果将订单和用户的所有查询条件都封装在一个简单POJO中,显然会比较混乱,这时就可以考虑使用【 】类型的数据绑定。
5. 在使用POJO类型数据绑定时,前端请求的参数名必须与要绑定的POJO类中的【 】一样,这样才会自动将请求数据绑定到POJO对象中,否则后台接收的参数值为【 java基础考试填空题题库 】。
二、 判断题
1. 绑定数组与绑定集合页面传递的参数相同,只是后台接收方法的参数不同。( )
2. 要使用集合数据绑定,需要在包装类中定义一个包含用户信息类的集合,然后在接收方法中将参数类型定义为该包装类的集合。( )
3. 在执行绑定数组操作中,前台页面中复选框中传递的name属性值必须相同。( )
4. 注册自定义的Formatter转换器类时,Bean的类名必须是org.springframework.format.support.FormattingConversionServiceFactoryBean,并且其属性为formatters。( )
5. Formatter与Converter的作用相同,只是Formatter的源类型可以是任意类型,而Converter必须是一个String类型。( )
三、 选择题
1. 以下有关Spring MVC数据绑定中集合数据绑定的说法正确的是。( )
A:批量删除用户操作时,前端请求传递过来的参数就会包含多个相同类型的数据,此时可以采用数组类型数据绑定的形式
B:使用集合数据绑定需要后台方法中定义一个集合类型参数介绍绑定前端请求参数
C:绑定数组与绑定集合页面传递的参数相同,只是后台接收方法的参数不同
D:在使用集合数据绑定时,后台方法中不支持直接使用集合形参进行数据绑定
2. 下面选项中,哪一个是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
3. @RequestParam注解中可以省略属性名称的是。( )
A: defaultValue
B: value
C: name
D: required
4. 下面关于包装POJO类型数据绑定的说法正确的是。( )
A: 如果查询条件参数是包装类的直接基本属性,则参数名直接用对应的属性名
B: 如果查询条件参数是包装类的直接基本属性,则参数名必须使用对应的“对象.属性名”
C: 如果查询条件参数是包装类中POJO的子属性,则参数名必须为属性名
D: 如果查询条件参数是包装类中POJO的子属性,则参数名必须为“对象.子属性.属性值”的形式
5. 下面不属于@RequestParam注解类型属性的是。( )
A: id
B: value
C: name
D: required
答案
一、 填空题
1. 集合
2. 对象.属性
3. 默认参数
4. 包装POJO
5. 属性名 null
二、 判断题
1. 错
2. 对
3. 对
4. 对
5. 错
三、 选择题
1. D
2. B
3. B
4. A
5. A
第17章 SSM框架整合
习题
一、 填空题
1. SSM框架整合主要是【 】的整合,以及【 】的整合。
2. 为了避免Spring配置文件中的信息过于臃肿,通常会将Spring配置文件中的信息按照【 】分散在多个配置文件中。
3. @Transactional注解主要是针对数据的【 】、【 】、【 】进行事务管理。
4. 在整合项目中,db.properties文件主要用于【 】。
5. Spring与MyBatis框架的整合时,可以通过Spring【 】,然后调用实例对象中的查询方法来执行MyBatis映射文件中的【 】,如果能够正确查询出数据库中的数据,就可以认为Spring与MyBatis框架整合成功。
二、 判断题
1. 在实际开发时,为了避免Spring配置文件中的信息过于臃肿,通常会将Spring配置文件中的信息按照不同的功能分散在多个配置文件中。( )
2. @Autowired注解需要标注在Service层的实现类上,这样才能实现依赖注入。( )
3. @Transactional注解主要是针对数据的增加、修改、删除和查询进行事务管理。( )
4. Spring与Spring MVC,Spring MVC与MyBatis需要相互整合。( )
5. 在Spring MVC的配置文件中,视图解析器是必须配置的。( )
三、 选择题
1. 下列选项中,不需要配置在web.xml中的是。( )
A: Spring的监听器
B: 编码过滤器
C: 视图解析器
D: 前端控制器
2. 下列选项中,属于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
3. 下列选项中,不属于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
4. 下列关于SSM框架的整合说法错误的是。( )
A:Spring MVC与Spring之间不存在整合的问题。
B:SSM框架的整合就涉及到Spring与MyBatis的整合。
C:SSM框架的整合就涉及到Spring MVC与MyBatis的整合。
D:SSM框架的整合就涉及到Spring MVC与Spring之间的整合。
5. 下面选项中,不属于整合SSM框架所编写的配置文件的是。( )
A:db.properties
B:applicationContext.xml
C:mybatis-config.xml
D:struts.xml
答案
一、 填空题
1. Spring与MyBatis、Spring MVC与MyBatis
2. 不同的功能
3. 增加、修改、删除
4. 配置数据库常量
5. 实例化Bean、 SQL语句
二、 判断题
1. 对
2. 错
3. 错
4. 错
5. 错
三、 选择题
1. C
2. A
3. D
4. D
5. D
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/26544.html