当前位置:首页 > Spring笔试考试题目
Spring笔试考试题目
考生姓名:________ 考生班级:_______ 评分:_______________________ 一:填空(总分20分)
1.1: Spring 的框架是一个____轻量级________容器,以___IOC_____模式作为核心,从而可以实现应用程序组件的_______松散耦合 ______结构,让应用程序组件可以容易进行测试。 1.2: Spring中实现IoC模式的方法都有_____注入依赖_____________, _____java注解____________, ___________schema XML方式 ________, ________serviceLocator_____________。 1.3: Spring中基于Web的ApplicationContext下可以用到的特有的Bean的作用域都有_request _________________, ______session ___________, _________globalsession _________。
1.4: Spring中的AOP术语的全称是_______面向切面编程_______________(中文)、___aspect-OrientedProgramming_________________(英文),在Spring中它的实现机制是采用__________________动态代理____实现的。 1.5:在Spring AOP中,Advice(增强)被应用至对象之上的过程称之为___缝合_____________(中英文都填),其选择时机有几个时间点,分别是:______编译_______时期、_类别加载_____________时期、和_执行_________________时期。
1.6:配置Spring中的@AspectJ时,需要配置_
1.7:在Spring AOP中,我们可以通过_______@pointcut_________注解对切点表达式进行命名。
1.8:Spring AOP中,在“进入”连接点的情况下,___最高________优先级的增强会先执行;在“退出”连接点的情况下,_____最高________优先级的增强会最后执行;对于定义在相同切面的增强,根据____声明的顺序_____________来确定执行顺序。
1.9:使用Schema XML配置Spring AOP时,
1.10:Spring事物管理中,重要的三个概念分别是__transactiondefinition________________ ,_____transactionStatus ____________,____platformtransactiomanger _____________________。 二:选择(注意:单选或者多选混选)(总分20分)
2.1:可以实现IoC (Inversion of Control) 模式的方法都有哪些?_______ABCD_____________
A:依赖注入(Dependency Injection) B:Service Locator C:Java 注解
D:Schema XML方式
2.2:Spring中Bean的自动装配都有哪些选择? _____ABCD_______________ A:By Type B:By Name C:No
D:Constructor方式 E:Autodetect方式
2.3:Spring中ApplicationContext能够用到的Bean的作用域都有哪些? _____ABC_____________ A:Singleton B:Prototype
C:Session D:Response
2.4:我们学习过的Abstract Factory,Prototype,Singleton模式按照设计模式的分类都属于哪种? ___AD_________________ A:创建型设计模式 B:结构型设计模式 C:行为型设计模式
D:对象范围的设计模式
2.5:Bean的基本配置中,如果有诸如List,Set,Map和Properties的属性,那么可以通过下述哪些对应的标签来配置? ______ABCD______________ A: B:
2.6:Spring的AOP的动态代理机制都有哪些? _______AB_____________ A:CGLib库 B:JDK动态代理 C:Proxy代理 D:Auto代理
2.7:Spring中的@AspectJ切点表达式函数都有哪些? _______ABCD_____________ A:方法切点函数 B:方法入参切点函数 C:目标类切点函数 D:代理类切点函数
2.8:说明下面切面类的增强实施到业务方法int foo(String name)时,其增强各自执行后结果是什么? @Aspect
public class AspectWithMultipleAdviceDeclarations { @Pointcut(\ public void fooExecution() {} @Before(\ public void doBeforeOne() { // ... }
@Before(\ public void doBeforeTwo() { // ... }
@AfterReturning(\ public void doAfterOne() { // ... }
@AfterReturning(\ public void doAfterTwo() { // ... }
} ______ebadc______________(注意顺序)
A:foo
B:doBeforeTwo C:doAfterTwo D:doAfterOne E:doBeforeOne
2.9:下面哪些不支持切点中的通配符,如+, .., 和*? _______abcd_____________ A:@args() B:@within() C:@target() D:@annotation()
2.10:下面哪个是Spring AOP中的引介增强? _______E_____________
A:@Before
B:@AfterReturning C:@Around
D:@AfterThrowing E:@DeclareParents 三:判断对错(总分30分)
3.1:Spring中,我们可以选择DBCP,C3P0来配置数据源。 ( T )
3.2:在Bean的基本配置中,如果某个Bean属性要默认为空,我们可以利用将该属性设置为null来实现;如
3.3:在配置Bean时,内部Bean中的singleton标记及id或name属性将不会被忽略,内部bean总是匿名的且它们总是prototype模式的。同时将内部bean注入到包含该内部bean之外的bean也是可能的。(F ) 3.4:下面配置的Bean,Spring会在启动时,IoC容器默认会将该bean提前进行实例化。
(F ) 3.5:Spring中配置的Bean,要么只能都用Autowire自动装配,要么都不用Autowire自动装配。( F )
3.6:在Spring中,大多数配置的Bean都是Prototype类型的,并且Spring会对Prototype类型的Bean负责其整个生命周期的。 ( F ) 3.7:切点表达式中的通配符“+”:其含义表示按类型匹配指定类的所有类,仅能跟在类名后面。( T ) 3.8:Spring的AOP中,用注解表示的后置增强是@After。 ( F )
3.9:Spring的AOP中,定义在不同的切面里的两个增强都需要在一个相同的连接点中运行,那么除非我们显式指定,否则执行的顺序是未知的。 ( T ) 3.10:Spring AOP中,Advisor是切点和增强的复合体,它可以包含多个切点和增强。( F )
3.11:Spring的AOP中,切点绑定增强方法时,是按名字匹配的,但是在绑定连接点时,是按参数顺序匹配的。 ( T )
3.12:使用Spring统一的DAO异常体系时,如果访问数据资源时失败,如无法获取数据连接,无法获取Hibernate的
会话等,我们可以捕获ConcurrencyFailureException类型的异常。 ( F ) 3.13:Spring中,如果我们的持久层采用Spring提供的模板类来实现,为了要使持久层的方法是多线程安全的,我们可以选择继承Spring提供的支持类xxxSupport。 ( F )
3.14:Spring AOP中,不仅支持方法上的连接点,还支持属性上的连接点。 ( F )
3.15:Spring中,持久层、业务层的Bean一般是加载到Spring容器中的根容器,而为融合Struts框架设计的Action
Bean一般是加载到子容器中的;父容器是可以访问子容器中的Bean元素的。 ( F ) 四:问答题(总分20分)
4.1:请阐述Spring框架和EJB相比较,各自的优缺点?
Spring核心是依赖注入模式 spring可以随时测试 EJB测试非常麻烦
EJB3,0是一个标准的框架
4.2:在Spring IoC核心模式中,试比较三种推荐的依赖注入方式的相同点和不同点?
4.3:请解释你所理解的AOP中的如下概念:增强、切入点、连接点、切面,并说明它们之间的关系。以及Spring的AOP框架是如何用这些概念搭建并实现的,请阐述你的理解?
4.4:说明你Spring中Bean的各种生命周期的理解?
4.5:这里为下面的业务类方法编写了两个切面类,每个切面类中分别定义了一些增强方法,请完成下面的问题。
//业务类定义
package com.cstp;
public class NaiveWaiter implements Waiter{ public void greetTo(String clientName){
System.out.println(\ }
public void serveTo(String clientName, int times){
System.out.println(\”?”+times+\ } }
//第一个切面类的定义
package com.cstp.aspectj.aspectj;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; @Aspect
public class PreGreetingAspect{
@Before(\
共分享92篇相关文档