ssm框架题库javaWord下载.docx
- 文档编号:21043493
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:48
- 大小:43.43KB
ssm框架题库javaWord下载.docx
《ssm框架题库javaWord下载.docx》由会员分享,可在线阅读,更多相关《ssm框架题库javaWord下载.docx(48页珍藏版)》请在冰豆网上搜索。
spring-context-.RELEASE.jar是所有应用都要用到的JAR包,它包含访问配置文件以及进行IoC或者DI操作相关的所有类。
spring-core.RELEASE.jar包含Spring框架根本的核心工具类,Spring其它组件都要用到这个包里的类,是其它组件的根本核心。
3.以下有关Spring框架优点的说法正确的选项是。
Spring具有简单、可测试和松耦合等特点,从这个角度出发,Spring就是应用于任何Java应用的开发中;
Spring提供了对AOP的支持,它允许将一些通用任务,如平安、事务、日志等进行集中式处理,从而提高了程序的复用性
Spring就是一个大工厂,可以将所有对象的创立和依赖关系的维护工作都交给Spring容器管理,杜绝了组件之间的耦合性
Spring增加了JavaEE开发中一些API的使用难度
4.Spring的核心容器是其他模块建立的根底,以下哪个不是该容器的组成模块。
Beans模块
Core模块
Context模块
AOP模块
5.以下选项中,不属于Spring框架优点的是。
提供强大的、可以有效减少页面代码的标签
声明式事务的支持。
方便解耦、简化开发
方便集成各种优秀框架
四、简答题
1.Spring依赖注入通常有哪些实现方式,列举并分别进行说明。
答案
1.Bean
2.Spring容器
mons-logging
4.生命周期
5.Spring框架包、第三方依赖包
1.对
2.错
3.对
4.对
5.对
1.A
2.D
3.B
4.D
5.A
Spring的实现方式通常有两种,一种是属性setter方法注入,另一种是构造方法注入。
属性setter方法注入是指IoC容器使用setter方法来注入被依赖的实例。
通过调用无参构造器或无参静态工厂方法实例化Bean后,调用该Bean的setter方法,即可实现基于setter方法的依赖注入。
构造方法注入是指IoC容器使用构造方法来注入被依赖的实例。
基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。
第2章Spring中的Bean
1.所谓自动装配,就是将一个Bean自动的注入到到其他Bean的【】中。
2.@Controller通常作用在控制层,如SpringMVC的【】,用于将控制层的类标识为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属性取值不包括以下。
defaultB:
byNameC:
byTypeD:
byId
2.以下有关Bean的装配方式说法正确的选项是。
Spring容器支持多种形式的Bean的装配方式,如基于XML的装配、基于注解〔Annotation〕的装配和自动装配〔其中最常用的是基于XML的装配〕;
Spring提供了3种基于XML的装配方式:
设值注入、构造注入和属性注入;
在Spring实例化Bean的过程中,Spring首先会调用Bean的默认构造方法来实例化Bean对象,然后通过反射的方式调用setter方法来注入属性值;
设值注入要求一个Bean必须提供一个有参构造方法并且为需要注入的属性提供对应的setter方法。
3.。
applicationB:
requestC:
responseD:
globalSession
4.Spring中定义了一系列的注解,以下有关其常用的注解说明错误的选项是。
@Autowired用于对Bean的属性变量、属性的setter方法及构造方法进行标注,配合对应的注解处理器完成Bean的自动配置工作,默认按照Bean的名称进行装配。
@Repository用于将数据访问层〔DAO层〕的类标识为Spring中的Bean。
@Service通常作用在业务层〔Service层〕,用于将业务层的类标识为Spring中的Bean。
@Controller通常作用在控制层〔如SpringMVC的Controller〕,用于将控制层的类标识为Spring中的Bean。
5.以下选项中,不属于Spring中实例化Bean的方式的是。
构造器实例化B:
静态工厂方式实例化
实例工厂方式实例化D:
抽象方法实例化
四、简答题
1.请简述基于XML的装配方式中设值注入的要求。
1.Property
2.Controller
3.@Repository
4.prototype
5.factory-bean
1.错
3.错
4.错
1.D
2.C
3.C
4.A
5.D
Spring中基于XML的装配方式中设值注入需要满足以下两点要求:
1、Bean类必须提供一个默认的无参构造方法。
2、Bean类必须为需要注入的属性提供对应的setter方法。
第3章SpringAOP
1.AspectJ框架中注解【】用于定义切入点表达式,在使用时还需定义一个包含名字和任意参数的方法签名来表示切入点名称。
2.在Spring配置文件中,<
aop:
aspect>
子元素的pointcut-ref属性用于指定一个已经存在的【】。
3.在Spring的配置文件中,配置切面使用的是【】元素。
4.在Spring中,使用【】是创立AOP代理的根本方式。
5.AOP术语中【】表示AOP框架在特定的切入点执行的增强处理,即在定义好的切入点处所要执行的程序代码。
1.如果在同一个连接点有多个通知需要执行,那么在同一切面中,目标方法之前的前置通知和环绕通知的执行顺序是未知的,目标方法之后的后置通知和环绕通知的执行顺序也是未知的。
2.AspectJ框架中的注解@After用于定义最终final通知,不管是否异常,该通知都会执行。
3.Spring配置文件中的<
beans>
元素下可以包含多个<
config>
元素,一个<
元素中又可以包含属性和子元素,其子元素包括<
pointcut>
、<
advisor>
和<
。
4.Spring中的AOP代理默认就是使用CGLIB代理的方式来实现的。
5.Spring3.0以后,SpringAOP引入了对AspectJ的支持,并允许直接使用AspectJ进行编程,而Spring自身的AOPAPI也尽量与AspectJ保持一致。
1.以下不属于ProxyFactoryBean类中的常用可配置属性的是。
target
proxyInterfaces
targetClass
interceptorNames
2.以下哪种类型不是Spring中的通知类型。
异常通知
前置通知
后置通知
最终通知
3.关于AspectJ注解的介绍,说法错误的选项是。
@Aspect用于定义一个切面
@Pointcut用于定义切入点表达式
@Before用于定义前置通知,相当于BeforeAdvice
@After用于定义后置通知,相当于AfterReturningAdvice
4.以下有关CGLIB代理相关说法正确的选项是。
CGLIB代理的使用非常简单,但它还有一定的局限性——使用动态代理的对象必须实现一个或多个接口。
如果要对没有实现接口的类进行代理,那么可以使用CGLIB代理。
CGLIB是一个高性能开源的代码生成包,在使用时需要另外导入CGLIB所需要的包。
Spring中的AOP代理,可以是JDK动态代理,也可以是CGLIB代理。
5.以下关于SpringAOP的介绍错误的选项是。
AOP的全称是Aspect-OrientedProgramming,即面向切面编程〔也称面向方面编程〕。
AOP采取横向抽取机制,将分散在各个方法中的重复代码提取出来,这种采用横向抽取机制的方式,采用OOP思想是无法办到的。
虽然AOP是一种新的编程思想,采取横向抽取机制,是OOP的升级替代品。
目前最流行的AOP框架有两个,分别为SpringAOP和AspectJ。
1.请对Spring的通知类型进行简要说明。
1.@Pointcut
2.切入点名称
3.<
4.ProxyFactoryBean
5.Advice
2.对
5.错
1.C
3.D
4.C
5.C
Spring中主要包含5种通知类型,分别是环绕通知,前置通知,后置通知,异常通知和引介通知。
其中,环绕通知表示在目标方法执行前后实施增强,可以应用于日志、事务管理等功能。
前置通知表示在目标方法执行前实施增强,可以应用于权限管理等功能。
后置通知表示在目标方法执行后实施增强,可以应用于关闭流、上传文件、删除临时文件等功能。
异常通知表示在方法抛出异常后实施增强,可以应用于处理异常记录日志等功能。
引介通知表示在目标类中添加一些新的方法和属性,可以应用于修改老版本程序〔增强类〕。
第4章Spring的数据库开发
1.JdbcTemplate类中还提供了大量的【】方法来处理各种对数据库表的查询操作。
2.JdbcTemplate类中的【】方法可以完成插入、更新和删除数据的操作。
3.【】就是Junit4用来测试的注解,要测试哪个方法,只需要在相应测试的方法上添加此注解即可。
4.JDBC连接数据库时需要4个根本属性,包括有【】、url、username和password。
5.JdbcTemplate类的继承关系十分简单。
它继承自抽象类【】,同时实现了JdbcOperations接口。
1.在使用Junit进行单一测试时,JUnit视图窗口的进度条为绿色说明运行结果正确;
如果进度条为红色那么表示有错误,并且会在窗口中显示所报的错误信息。
2.定义jdbcTemplate时,需要将dataSource注入到jdbcTemplate中。
3.JdbcOperations接口定义了在JdbcTemplate类中可以使用的操作集合,包括添加、修改、查询和删除等操作。
4.JdbcTemplate类中还提供了大量的query()方法来处理各种对数据库表的查询操作。
5.在JdbcTemplate类中,提供了大量的更新和查询数据库的方法,我们就是使用的这些方法来操作数据库的。
1.SpringJDBC模块主要由4个包组成,其中不包括。
core〔核心包〕
dataSource〔数据源包〕
driverClass〔数据库驱动包〕
support〔支持包〕
2.JdbcTemplate的直接父类是。
〔〕
JdbcAccessor
JdbcOperations
JdbcSupper
Object
3.JdbcTemplate类包含在SpringJDBC模块的哪个包中。
核心包
数据源包
对象包
支持包
4.下面关于update()方法描述错误的选项是。
update()方法可以完成插入、更新、删除和查询数据的操作
在JdbcTemplate类中,提供了一系列的update()方法
update()方法执行后,会返回受影响的行数
update()方法返回的参数是int类型
5.下面描述中,关于query()方法说法错误的选项是。
Listquery(Stringsql,RowMapperrowMapper)会执行String类型参数提供的SQL语句,并通过RowMapper返回一个List类型的结果。
Listquery〔Stringsql,PreparedStatementSetterpss,RowMapperrowMapper〕会根据String类型参数提供的SQL语句创立PreparedStatement对象,通过RowMapper将结果返回到List中。
Listquery〔Stringsql,Object[]args,RowMapperrowMapper〕会将args参数绑定到SQL语句中,并通过RowMapper返回一个Object类型的单行记录。
queryForList〔Stringsql,Object[]args,class<
T>
elementType〕可以返回多行数据的结果,但必须是返回列表,elementType参数返回的是List元素类型。
1.请简述如何使用Junit对程序中的方法进行测试。
1.query()
2.update()
3.@Test
4.driverClassName
5.JdbcAccessor
2.A
3.A
使用JUnit对程序中的方法进行测试时的步骤如下:
1、先创立一个普通测试方法,并在方法上添加单元测试的注解@Test;
2、添加@Test注解后,在注解处会报错,将鼠标移动至@Test注解处,会弹出错误提示框,单击提示框中的AddJUnit4librarytothebuildpath后,Eclipse会自动将JUnit4的支持包参加到工程中;
3、在执行程序时,只需使用鼠标右键单击测试方法,在弹出的快捷菜单中选择RunAs中的JUnitTest选项来运行测试方法即可。
第5章Spring的事务管理
1.使用基于注解方式的事务管理需要在使用事务的SpringBean类或者Bean类的方法上添加注解【】。
2.Spring的声明式事务管理可以通过两种方式来实现,一种是基于XML的方式,另一种是基于【】的方式。
3.Spring2.0以后,提供了tx命名空间来配置事务,tx命名空间下提供了【】元素来配置事务的通知〔增强处理〕。
4.在Spring的所有JAR包中,包含一个名为【】的JAR包,该包就是Spring提供的用于事务管理的依赖包。
5.声明式事务管理:
是通过【】实现的事务管理。
1.基于XML方式的声明式事务管理是通过在配置文件中配置事务规那么的相关声明来实现的。
2.编程式事务管理是通过编写代码实现的事务管理,包括定义事务的开始、正常执行后的事务提交和异常时的事务回滚。
3.Spring的事务管理简化了传统的事务管理流程,并且在一定程度上减少了开发者的工作量。
4.Spring的声明式事务管理可以通过两种方式来实现,一种是基于XML的方式,另一种是基于Annotation的方式。
5.@Responsebody注解与@RequestMapping注解配合使用时,页面中将可以获取到方法的返回值。
1.以下关于@Transactional注解可配置的参数信息及秒正确的选项是。
value用于指定需要使用的事务管理器,默认为"
"
;
read-only用于指定事务是否只读,默认为true;
isolation用于指定事务的隔离级别,默认为Isolation.READ_COMMITTED;
propagation用于指定事务的传播行为,默认为Propagation.SUPPORTS;
2.以下基于XML方式的声明式事务管理配置文件中<
tx:
advice>
元素的子元素<
method>
属性描述错误的选项是。
name:
该属性为必选属性,它指定了与事务属性相关的方法名
propagation:
用于指定事务的传播行为,它的默认值为SUPPORTS
isolation:
该属性用于指定事务的隔离级别,其默认值为DEFAULT
read-only:
该属性用于指定事务是否只读,其默认值为false
3.以下有关事务管理方式相关说法错误的选项是。
Spring中的事务管理分为两种方式:
一种是传统的编程式事务管理,另一种是声明式事务管理。
编程式事务管理:
是通过AOP技术实现的事务管理,就是通过编写代码实现的事务管理,包括定义事务的开始、正常执行后的事务提交和异常时的事务回滚。
声明式事务管理:
其主要思想是将事务管理作为一个“切面〞代码单独编写,然后通过AOP技术将事务管理的“切面〞代码植入到业务目标类中。
声明式事务管理最大的优点在于开发者无需通过编程的方式来管理事务,只需在配置文件中进行相关的事务规那么声明,就可以将事务规那么应用到业务逻辑中。
4.以下有关Spring事务管理及核心接口说法错误的选项是。
PlatformTransactionManager接口是Spring提供的平台事务管理器,主要用于管理事务。
TransactionDefinition接口是事务定义〔描述〕的对象,该对象中定义了事务规那么,并提供了获取事务相关信息的方法。
TransactionStatus接口是事务的状态,它描述了某一时间点上事务的状态信息。
在事务管理过程中,传播行为可以控制是否需要创立事务以及如何创立事务,通常情况下,对于数据的查询、插入、更新和删除操作,必须进行事务管理。
5.以下选项中,哪一个不是Spring中事务管理的核心接口。
PlatformTransactionManager
TransactionDefinition
TransactionStatus
TransactionManager
1.请列举PlatformTransactionManager接口提供了有哪些事务操作方法,并对这些方法分别进行简单说明。
1.@Transactional
2.Annotation
4.
5.AOP技术
2.B
PlatformTransactionManager接口中提供了三个事务操作方法,具体如下所示:
〔1〕TransactionStatusgetTransaction(TransactionDefinitiondefinition):
用于获取事务状态信息。
〔2〕voidcommit(TransactionStatusstatus):
用于提交事务。
〔3〕voidrollback(Transac
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ssm 框架 题库 java
![提示](https://static.bdocx.com/images/bang_tan.gif)