Spring笔试考试题目_第1页
Spring笔试考试题目_第2页
Spring笔试考试题目_第3页
Spring笔试考试题目_第4页
Spring笔试考试题目_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Spring 笔试考试题目考生姓名: 考生班级: 评分: 一:填空( 总分 20 分 ): Spring 的框架是一个轻量级 容器,以_IOC模式作为核心,从而可以实现应用程序组件的松散耦合 结构,让应用程序组件可以容易进行测试。:Spring 中实现IoC 模式的方法者隋注入依赖, java 注解,schema XML式serviceLocator。:Spring 中基于 Web的Applicationcontext下可以用到的特有的Bean的作用域都有_request ,session , _globalsession 。:Spring 中的AO冰语的全称是 面向切面编程 (中文)、_as

2、pect-OrientedProgramming (英文) ,在 Spring 中它的实现机制是采用动态代理实现的。:在 Spring AOP 中, Advice( 增强 )被应用至对象之上的过程称之为_缝合 (中英文都填),其选择时机有几个时间点,分别是: 编译 时期、_类别加载时期、 和 _执行 时期。:配置Spring中的AspectJ时,需要配置_<aop-aspecrJ-autoproxy>_ 标签,以便 AOP框架自动使用增强; 该标签有一个proxy-target-class 属性,默认为false ,表示使用_jdk 动态代理治入增强代理方式,当配置为<aop

3、:aspectj-autoproxy proxy-target-class=_true/> 时,表示使用_cglib 动态代理技术治入增强代理方式。:在 Spring AOP 中,我们可以通过pointcut 注解对切点表达式进行命名。:Spring AOP中,在“进入”连接点的情况下,最高 优先级的增强会先执行;在“退出”连接点的情况下,最高 优先级的增强会最后执行;对于定义在相同切面的增强,根据声明的顺序来确 定执行顺序。:使用 Schema XML配置 Spring AOP 时,<aop:config> , <aop:aspect> 和 <aop:ad

4、visor> ,三者在配置有先后顺序要 求 , 要 求 的 顺 序 分 别 是 :<aop:config>,<aop:advisor>,<aop:aspect> 。: Spring 事物管理中,重要的三个概念分别是_transactiondefinition_ , transactionStatus, platformtransactiomanger 。二:选择( 注意:单选或者多选混选)( 总分 20 分 ):可以实现Ioc (Inversion of control) 模式的方法都有哪些?ABcDA:依赖注入(Dependency Injectio

5、n)B: Service Locatorc: Java 注解D: Schema XML方式:Spring中Bean的自动装配都有哪些选择?ABCDA: By TypeB: By Namec: NoD: constructor 方式E: Autodetect 方式: Spring 中 Applicationcontext 能够用到的Bean 的作用域都有哪些?ABcA: SingletonB: Prototypec: SessionD: Response:我们学习过的Abstract Factory , Prototype , Singleton 模式按照设计模式的分类都属于哪种?_ADA:创建

6、型设计模式B:结构型设计模式C:行为型设计模式D:对象范围的设计模式:Bean的基本配置中,如果有诸如List , Set, Map和Properties 的属性,那么可以通过下述哪些对应的标签来配置?ABCDA: <list/>B: <set/>C: <map/>D: <props/>:Spring的AOP勺动态代理机制都有哪些? ABA: CGLib 库B: JDK动态代理C: Proxy 代理D: Auto 代理:Spring中的AspectJ切点表达式函数都有哪些? ABCDA:方法切点函数B:方法入参切点函数C:目标类切点函数D:代理类

7、切点函数:说明下面切面类的增强实施到业务方法int foo(String name) 时,其增强各自执行后结果是什么?Aspectpublic class AspectWithMultipleAdviceDeclarations Pointcut("execution(* foo(.)")public void fooExecution() Before("fooExecution()")public void doBeforeOne() Before("fooExecution()") public void doBeforeTwo

8、() .AfterReturning("fooExecution()") public void doAfterOne() .AfterReturning("fooExecution()")public void doAfterTwo() ebadc( 注意顺序)A: fooB: doBeforeTwoC: doAfterTwoD: doAfterOneE: doBeforeOne:下面哪些不支持切点中的通配符,如+, .,和 *? abcdA: args()B: within()C: target()D: annotation():下面哪个是Sprin

9、g AOP 中的引介增强?EA: BeforeB: AfterReturningC: AroundD: AfterThrowingE: DeclareParents三:判断对错( 总分 30 分 ):Spring中,我们可以选择 DBCP C3P0来配置数据源。(T ):在 Bean 的基本配置中,如果某个Bean 属性要默认为空,我们可以利用将该属性设置为null 来实现;如<bean class="ExampleBean"><property name="email">null</property></bea

10、n(F ):在配置Bean时,内部Bean中的singleton 标记及id或name属性将不会被忽略,内部 bean总是匿名的且它们总是 prototype 模式的。同时将内部bean 注入到包含该内部bean 之外的 bean 也是可能的。( F ):下面配置的Bean, Spring 会在启动时,IoC 容器默认会将该bean 提前进行实例化。<bean id="lazy" class="" lazy-init="true" ><!- various properties here. -></bea

11、n>(F ):Spring中配置的Bean,要么只能都用 Autowire自动装配,要么都不用 Autowire自动装配。(F ):在Spring中,大多数配置的 Bean都是Prototype 类型的,并且 Spring会对Prototype 类型的Bean负责其整个生命周期的。(F ):切点表达式中的通配符“+”:其含义表示按类型匹配指定类的所有类,仅能跟在类名后面。(T ): Spring的AOP中,用注解表示的后置增强是After 。(F ):Spring的AOP中,定义在不同的切面里的两个增强都需要在一个相同的连接点中运行,那么除非我们显式指定,否则执行的顺序是未知的。(T )

12、: Spring AOP 中, Advisor 是切点和增强的复合体,它可以包含多个切点和增强。( F ): Spring 的 AOP 中,切点绑定增强方法时,是按名字匹配的,但是在绑定连接点时,是按参数顺序匹配的。( T ):使用Spring统一的DA册常体系时,如果访问数据资源时失败,如无法获取数据连接,无法获取Hibernate的会话等,我们可以捕获ConcurrencyFailureException 类型的异常。( F ): Spring 中,如果我们的持久层采用Spring 提供的模板类来实现,为了要使持久层的方法是多线程安全的,我们可以选择继承Spring 提供的支持类xxxSu

13、pport 。( F ): Spring AOP 中,不仅支持方法上的连接点,还支持属性上的连接点。( F ): Spring 中, 持久层、 业务层的Bean 一般是加载到Spring 容器中的根容器,而为融合Struts 框架设计的Action Bean一般是加载到子容器中的;父容器是可以访问子容器中的Bean 元素的。( F )四:问答题( 总分 20 分 ):请阐述Spring框架和EJB相比较,各自的优缺点?Spring 核心是依赖注入模式 spring 可以随时测试 EJB 测试非常麻烦EJB3,0 是一个标准的框架Spring IoC 核心模式中,试比较三种推荐的依赖注入方式的相

14、同点和不同点?Spring 的 AOP:请解释你所理解的 AOP中的如下概念:增强、切入点、连接点、切面,并说明它们之间的关系。以及 框架是如何用这些概念搭建并实现的,请阐述你的理解?:说明你Spring中Bean的各种生命周期的理解?:这里为下面的业务类方法编写了两个切面类,每个切面类中分别定义了一些增强方法,请完成下面的问题。 .”);public void serveTo(String clientName, int times) "NaiveWaiter:serving "+clientName+ ""+times+"");

15、)")public void beforeGreeting()"How are you?");.)")public void bindJoinPointParams(int num,String name) "bindJoinPointParams-");"name:" + name);"num:" + num);"bindJoinPointParams-");先,请填写上面的空白(1) 处。2) . 请写出测试代码运行后的结果。3) .如果我们要把第一个切面类采用Schem

16、a XML方式来完成,请写出该种方式的配置文件,只需要写出<aop:config> 中配置增强和切点的方式。<aop:config> </aop:config>五:编程( 总分 10 分 ):下面是一个需要进行事务管理的业务类,package class UserServiceImpl implements UserService private UserDao userDao; / 注入接口对象private LoginLogDao loginLogDao; / 注入接口对象public void setUserDao(UserDao userDao) =

17、userDao;public void setLoginLogDao(LoginLogDao loginLogDao) =loginLogDao;public boolean hasMatchUser throws Exception(String userName, String password)int matchCount=(useName, password);return matchCount>0;public User findUserByUserName throws Exception (String userName) return (userName);public

18、void loginSuccess throws Exception (User user)(5+();LoginLog loginLog=new LoginLog();();();();(user);(loginLog);其中 hasMatchUser() , findUserByUserName() , loginSuccess() 需要的事务管理需求描述如下:hasMatchUser() :只读事务,事务传播方式必须有事务管理,隔离级别是不能出现脏读,出现SQLException 需要回滚。findUserByUserName() :只读事务,事务传播方式可以没有事务管理,隔离级别是不能出现脏读,出现任何Exception 不需要回滚。loginSuccess() :可写事务,事务传播方式是强制方式,隔离级别是不能出现脏读,出现任何Exception 需要回(1)写出该业务类使用注解来实现事务管理的完整形式。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论