spring测试
本文内容纲要:spring测试
一、Spring基础知识及IOC_选择题
- 下面关于spring描述错误的是:(C )
A Spring支持可插入的事务管理器,使事务划分更轻松,同时无需处理底层的问题。
B Spring事务管理的通用抽象层还包括JTA策略和一个JDBC DataSource。
C 与JTA或EJB CMT一样,Spring的事务支持依赖于Java EE环境。
D Spring事务语义通过AOP应用于 POJO,通过XML或Java SE 5注释进行配置。
- 下面选项哪个不是Spring中接口注入的方式?(D )
A 接口注入
B 构造子注入
C 设值注入
D 指针注入
- 下列关于Spring特性中IoC描述错误的是:(A)
A IoC就是指程序之间的关系由程序代码直接操控。
B 所谓“控制反转”,是指控制权由应用代码转到外部容器,控制权的转移,
C IoC将控制创建的职责搬进了框架中;并把它从应用代码脱离开来
D 当使用Spring的IoC容器时只需指出组件需要的对象,在运行时Spring的IoC容器会根据XML配置数据提供给它。
二、Spring基础知识及IOC_简答题
- 请简述Spring的工作机制?
参考答案:Spring的工作机制可从以下几点来描述:
(1)spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
(2)DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller。(3)DispatcherServlet请请求提交到目标Controller
(4)Controller进行业务逻辑处理后,会返回一个ModelAndView
(5)Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象(6)视图对象负责渲染返回给客户端。
- 请回答你为什么用Spring的工作机制?
参 考答案:Spring能有效的组织你的中间层对象,不管你是否选择使用了EJB。如果你仅仅使用了strus或其他为j2ee的API特性的 framework,spring致力于解决剩下的问题。Spring能够消除在许多工程中常见的对singleton的过多的使用。这个是一个很大的问 题,它降低了系统的可测试性和面向对象的程度。通过把对接口编程而不是对类编程的代价几乎减少到没有,spring能够促进良好的变成习惯的养成。
- 请简述Spring是什么?
参考答案:Spring是一个轻型的容器,是J2EE规范的轻量级实现,是企业应用的“一站式”解决方案。其中的核心就是bean工厂,用以构造我们需要的Model,spring是非侵入式的,Spring的应用中的对象不依赖于Spring的特定类。
- 简述spring的组成?
参考答案:Spring主要由以下六个部分组成
① SpringCore:核心容器,BeanFactory提供了组件生命周期的管理,组件的创建,装配,销毁等功能。
SpringContext:ApplicationContext,扩展核心容器,提供事件处理、国际化等功能。它提供了一些企业级服务的功能,提供了JNDI,EJB,RMI的支持。
②Spring AOP:提供切面支持。
③ Spring DAO:提供事务支持,JDBC,DAO支持。
④ Spring ORM:对流行的O/RMapping封装或支持。
⑤ Spring Web:提供Web应用上下文,对Web开发提供功能上的支持,如请求,表单,异常等。
⑥ Spring Web MVC:全功能MVC框架,作用等同于Struts。
5.简述Spring容器提供了哪些功能?
参考答案:Spring容器提供了对对象的管理,如Spring容器负责生成、组装、销毁组件,,另外Spring容器还提供了对持久化的支持,对事务的支持。另外Spring容器提供了国际化等功能。
- 在Spring中,bean的注入有几种方式,各是什么?
参考答案:Spring中,Bean的注入有两中方式,分别是Setter注入和构造器注入。
- 请简述:Spring bean的作用域?
参考答案:在spring2.0之前bean只有2种作用域即:singleton(单例)、non-singleton(也称prototype),Spring2.0以后,增加了session、request、global 。session 三种专用于Web应用程序上下文的Bean。因此,默认情况下Spring2.0现在有五种类型的Bean。当然,Spring2.0对Bean的类型的 设计进行了重构,并设计出灵活的Bean类型支持,理论上可以有无数多种类型的Bean,用户可以根据自己的需要,增加新的Bean类型,满足实际应用需 求。
- 请叙述设值注入的优点?
参 考答案:设置注入的优点:
(1)与传统的JavaBean的写法更相似,程序开发人员更容易了解和接受。通过setter方法设定依赖关系显得更加直观、 自然。
(2)对于有复杂的依赖关系,如果采用构造注入,会导致构造器过于臃肿,难以阅读。Spring在创建bean实例时,需要同时实例化其依赖的全部 实例,因而导致性能的下降,而使用设值注入能够解决这些问题。
(3)尤其是某些属性可选的情况下,多参数的构造器更加笨重。
- 请叙述构造注入的优点?
参 考答案:构造注入的优点:
(1)可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入。
(2)对于依赖关系无须变化的bean,构造注入更加有用 处。因为没有setter方法,所有的依赖关系全部在构造器内设定,因此,无须担心后续的代码对依赖关系产生破坏。
(3)依赖关系只能在构造器中设定,则 只有组建的创建者才能改变组建的依赖关系。对组建的调用者而言,组建内部的依赖关系完全透明,更符合高内聚的原则。
- 说出bean工厂创建bean的三种方式?
参考答案:Bean工厂创建bean的三种方式分别是:
(1)直接构造,需要一个default constructor和相应的setters/getters方法。
要注意的是,我们可以为getter/setter方法传递参数(用preperties标签),也可以为构造函数传递参数
(2)采用静态工厂方法,如:
<bean id="exampleBean"class="examples.ExampleBean2" factory-method="createInstance"/>
这里要求examples.ExampleBean2类有个静态方法createInstance
(3)非静态工厂方法
在这里,必须没有class标签,factory-bean是BeanFactory,factory-method是它的非静态方法,myFactoryBean可以通过容器来管理和配置。
- 请写出bean的生命周期的方法?
参 考答案:
(1)通过设置bean的init-method属性指定初始化的方法,他的限制是方法无法接受任何参数,方法可以为static。
(2)实现 InitializingBean接口的afterPrioertiesSet()方法。(3)销毁对象可以通过disposableBean的 destroy的实现。
- 请简述你对IOC的理解?
参考答案:IOC即Inversion of Control,就是反转控制,Ioc将控制创建的职责搬进了框架之中,并把它从应用代码中分隔开来,使用Ioc容器则需要指出组件需要什么对象在运行时容器会提供给它,容器是通过查看对象的参数表做到的,也可能根据配置数据如xml。
- 请回答:IoC最大的好处是什么?
参考答案:IoC最大的好处是降低了对象的耦合性,实现了应用的松散耦合。因为把对象生成放在了XML里定义,所以当我们需要换一个实现子类将会变成很简单(一般这样的对象都是现实于某种接口的),只要修改XML就可以了。
- 简述IoC的类型?
参考答案:IOC可以分为三种注入类型,分别是构造函数注入、属性注入和接口注入。Spring主要支持构造函数注入和属性注入。
- Spring中依赖注入与传统编程之间的差别是什么?
参 考答案:在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创 建被调用者实例的工作通常由Spring容器来完成,然后注入调用者,因此也称为依赖注入。依赖注入的主要作用是起到解耦合的作用。
三、.AOP_简答题
- 说出Spring的通知类型有哪些?
参考答案:Spring的通知类型有(1) MethodBeforeAdvice (2) AfterReturningAdvice (3) MethodInterceptor (4)ThrowsAdvice
- 谈谈目标对象实现接口与目标对象不实现接口有什么区别?
参考答案:目标对象实现接口与目标对象不实现接口主要有以下几点区别:
(1)如果目标对象实现了接口,默认采用JDK的动态代理机制实现AOP
(2)如果目标对象实现了接口,可以强制spring采用CGLIB实现代理
(3) 如果目标对象没有实现接口,必须采用CGLIB实现代理,spring会自动的在CGLIB和JDK动态代理之间切换
- 请描述JDK动态代理和CGLI代理的区别?
参考答案:JDK 的动态代理只能对实现了接口的目标类进行代理,而不实现接口的类就不能使用 JDK 的动态代理 CGLIB是针对类来实现代理,当没有实现接口的类需要代理时就需要通过 CGLIB
来实现代理了,他的原理是对指定的目标类生成一个子类,并覆盖其中方法实现增强,但是因为采用的是继承,所以不能对 finall类进行继承。二者在某些特殊场合需混合使用
- 简述ProxyFactoryBean的作用是什么?
参考答案:ProxyFactoryBean的作用是依照配置信息,将切面应用到目标对象,生成动态代理对象。
- 叙述Spring中的自动代理的原理?
参考答案:Spring在生成代理对象的时候,默认情况下,会使用被代理对象的接口来生成代理对象。如果被代理对象没有实现接口,此时,Spring会使用CGLIB生成代理对象,此时该代理对象是被代理对象的子类。
- 写出创建代理对象需指定的三要素是什么?
参考答案:创建代理对象需要指定的三要素是:target:设定目标对象(只能是一个);proxyInterfaces:设定代理接口(目标对象所实现的接口);interceptorNames:设定拦截器的名字(各个advice或advisor bean的列表)
- 写出代理的两种方式分别是什么?
参考答案:代理的两种方式是:静态代理和动态代理,其中静态代理针对每个具体类分别编写代理类;针对一个接口编写一个代理类。而动态代理针对一个方面编写一个InvocationHandler,然后借用JDK反射包中的Proxy类为各种接口动态生成相应的代理
- 请简述:什么是AOP?
参考答案:将程序中的交叉业务逻辑提取出来,称之为切面。将这些切面动态织入到目标对象,然后生成一个代理对象的过程。
- 简述AOP核心?
参考答案:AOP核心主要包括以下内容:(1)Aspect(切面),(2)Joinpoint(连接点),(3)Advice(通知),(4)Pointcut(切入点),(5)Introduction(引入),(6)Weaving(织入),(7)Target(目标对象),(8)Proxy(代理对象)
- 请叙述AOP事务的含义?
参考答案:Spring中进行事务管理的通常方式是利用AOP(面向切片编程)的方式,为普通java类封装事务控制,它是通过动态代理实现的,由于接口是延迟实例化的,spring在这段时间内通过拦截器,加载事务切片。
四、Spring对持久化的支持_简答题
- 请叙述Spring对持久层支持所采用的策略?
参 考答案:Spring对持久层采取了很好的支持,这些支持策略主要有:
(1)Spring对持久层“不发明重复的轮子”,即没有重新实现新的持久层方案, 对现有持久层方案做封装,更利于使用。
(2)采用DAO模式。
(3)提供了大量的模板类来简化编程 (HibernateDaoSupport,JdbcTemplate等)
(4)重新设计了一套完善的异常体系结构:①类型丰富,细化异常类型。② 全都是运行时异常(RuntimeException)。
- 请问Spring如何简化事务配置?
参 考答案:pring简化事务配置有两种方式:第一种方式就是使用TransactionProxyFactoryBean创建事务代理(通常事务代理以 Service层为目标bean)配置hibernate的事务管理器,使用HibernateTransactionManager类,该类实现了 PlatformTransactionManager接口,针对hibernate持 久化连接的特定实现。第二种方式使用自动创建代理简化事务配置使用BeanNameAutoProxyCreator和 DefaultAdvisorAutoProxyCreator创建代理时,并不一定是创建事务代理,关键在于传入的拦截器,如果传入事务拦截器,将可自 动生成事务代理
- 请简述Spring的事务机制?
参 考答案:Spring对事务的支持很丰富,除了编程式的处理事务,Spring还支持声明式事务。其次Spring使用事务服务代理和事务管理器(如 HibernateTransactionManager)来支持事务服务。另外Spring对事务的边界多了一种嵌套事务。
4.请回答:Spring API中的getCurrentSession()和openSession()两个方法的区别?
参 考答案:getCurrentSession()和openSession()两个方法主要有两点的区别:
(1)采用 getCurrentSession()创建的session会绑定到当前线程中,而采用openSession()创建的session则不会。
(2) 采用getCurrentSession()创建的session在commit或者rollback后会自动关闭,而采用openSession的方式 需要手动进行关闭。
- 请叙述Spring中使用Hibernate事务的步骤?
参考答案:Spring中使用Hibernate事务的步骤为:
(1)配置数据源
(2)配置sessionfactory
(3)配置事务管理器
(4)创建事务服务代理
- 请叙述关于Spring的声明式事务处理?
参 考答案:Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要 我们在与事务相关的方法中处理大量的try?catch?finally代码。我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。 事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。我们在进行事务划分时,需要进行事务定义,也就是配置事务的属性。
- 请叙述Spring的事务传播属性与隔离级别?
参 考答案:在使用Spring时,大部分会用到他的声明式事务,简单的在配置文件中进行一些规则配置,利用Spring的AOP功能就能轻松搞定事务问题; 这里面就涉及到一个事务的传播属性问题Propagation,它在TransactionDefinition接口中定义,以供 PlatfromTransactionManager使用,PlatfromTransactionManager是spring事务管理的核心接口。
在TransactionDefinition接口中定义了五个不同的事务隔离级别,ISOLATION_DEFAULT这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.另外四个与JDBC的隔离级别相对应,ISOLATION_READ_UNCOMMITTED这是事务最低的隔离级别,它充许别外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读。
五、Spring+Struts+Hibernate
- Spring对多种ORM框架提供了很好的支持,简单描述在Spring中使用Hibernate的方法,并结合事务管理?
参 考答案:Hibernate是最优秀的ORM框架,Spring对其提供了很好的支持,那么在Spring中使用Hibernate时要:
(1)为每一个 bean写hibernate映射文件,配置datasourse,hibernateDaoTemplate,sessionFactory,把 datasourse和映射文件注入到sessionFactory
(2) 每个dao都继承spring容器中提供的一个类HibernateDaoSupport,为每个dao注入 hibernateDaoTemplate
(3)在dao中使用getHibernateDaoTemplate()的方法。Spring中可以把需要进 行事务控制的Biz注入到transactionProxy,为biz方法配置transactionAttribute
2.请比较一下Spring framework与Struts?
参考答案:Struts只是一个MVC框架(Framework),用于快速的开发Java Web应用。Struts实现的重点在C(Controller),包括Actionservlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列的标签(Custom Tag)。而Spring是一个轻型容器,其中核心是bean工厂(beanfactory),用以构造我们所需的Model。在此基础上,spring提供了AOP(面向切面编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean工厂 的扩展ApplicationContext更加方便我们实现j2ee的应用;Dao/ORM的实现方便我们进行数据库的开发;Web
MVC和Spring Web提供了java Web应用的框架或与其他流行的Web框架进行集成。两者进行结合在一起使用是最好的方式。
- 请叙述编写业务逻辑的方法?
参考答案:继承HibernateDaoSupport类,使用HibernateTemplate来持久化,HibernateTemplate是HibernateSession 的轻量级封装。默认情况下运行期异常才会回滚(包括继承了RuntimeException子类),普通异常是不会滚的。编写业务逻辑方法时,最好将异常 一直向上抛出,在表示层(struts)处理。关于事务边界的设置,通常设置到业务层,不要添加到Dao上。
- 在Web分层架构中业务层为什么都选择Spring?
参考答案:因为Service层需要处理业务逻辑和交叉业务逻辑,处理事务,日志,安全等,而这些与Spring的IoC特性,AOP等不谋而合。
----------------------------------------------------------------------------------------------------------
Spring考试试卷 (题库)
- 下列关于AOP的说法错误的是( )。
A.AOP将散落在系统中的“方面”代码集中实现
B.AOP有助于提高系统的可维护性
C.AOP已经表现出了将要替代面向对象的趋势
D.AOP是一种设计模式,Spring为其提供了一种实现
- 在SSH整合时,事务隔离级别是由(B )实现的。
A.Java应用程序
B.Hibernate
C.数据库系统
D.JDBC驱动程序
- 下列( BC)不是Spring的依赖注入方式。【选两项】
A.setter注入
B.getter注入
C.接口注入
D.构造注入
- 在Spring框架中,面向方面编程(AOP)的目标在于(A )。
A.编写程序时不用关心其依赖组件的实现
B.将程序中涉及的公用问题集中解决
C.封装JDBC访训数据库的代码,简化数据访训层的得复性代码
D.实现画面的“无刷新”
- 关于Spring 与 Hibernate集成,下列说法错误的是(A )。
A.Spring提供了HibernateDaoSupport类来简化Hibernate的使用
B.在Spring配置文件中,可以通过Spring提供的LocalSessionFactoryBean来获得SessionFactory的实例
C.通过集成Spring和Hibernate,用Spring管理程序的依赖关系,将SessionFactory注入到DataSource中
D.通过Spring,可以在Biz层代码中无需直接实例化DAO类,而是通过注入得到
- 在Spring中,下列关于依赖注入的说法,正确的是(A )。
A.依赖注入的目标是在代码之外管理程序组建间的依赖关系(组件?组建?)
B.依赖注入即“面向接口”的编程
C.依赖注入是面向对象技术的替代品
D.依赖注入的使用会增大程序的规模
- 下列关于Spring的说法错误的是( C)。
A.Spring是一个轻量级JAVA EE的框架集合
B.Spring是“依赖注入”模式的实现
C.使用Spring可以实现声明事务
D.Spring提供了AOP方式的日志系统
- 在Spring 中,配置Hibernate 事务管理器(Hibernate TransactionManager)时,需要注入的属性名称是(B)。
A.dataSource
B.sessionFactory
C.baseHibernateDao
D.transactionProxyFactoryBean
- 下列(C )不是Spring AOP中的通知类型。
A.前置通知 B.后置通知 C.代理通知 D.异常通知
- 关于Spring与Hibernate集成,下列说法错误的是( )。
A.Spring提供了HibernateDaoSupport类来简化Hibernate的使用
B.在Spring配置文件中,可以通过Spring提供的LocalSessionFactoryBean来获得SessionFactory的实例
C.通过集成Spring和Hibernate,用Spring管理程序的依赖关系,将SessionFactory注入到DataSource中
D.通过Spring,无须在Biz层代码中直接实例化DAO类,而是可以通过注入得到
- 在Spring中,关于依赖注入,下列说法错误的是( B)。
A.依赖注入是一种设计开发模式
B.依赖注入使组件之间相互依赖、相互制约
C.依赖注入提倡使用接口编程
D.依赖注入可以独立开发各组件,然后根据组件间的依赖关系进行组装
- 关于Spring,下列说法不正确的是(D )。
A.运用Spring,可以通过一个setter方法暴露一个类的任何依赖关系
B.Spring解决依赖性问题的方法即反向控制或依赖注入
C.Spring从配置方面来解决依赖性问题,无须编写一个数据库连接
D.Spring从配置方面来解决依赖性问题,同时也需要编写一个数据库连接
- 下列对Spring的7个模块的说法,正确的有(AC )。【选两项】
A.各模块(或组件)可以单独存在
B.各模块(或组件)不可以单独存在,必须要一起使用
C.核心模块的BeanFactory使Spring成为框架
D.上下文模块使Spring成为容器
- Spring以Bean的方式管理所有的组件,此处的Bean指的是(B )。
A. 必须符合JavaBean
B. 任何Java对象以及Java组件都视为Bean
C. 必须要有getter方法和setter方法
D. EJB组件
- 在Spring中,Bean属性中的autowire包括( ABCE)。【选四项】
A.byName
B.byType
C.constructor
D.bySet
E.no
- 在Spring中,Bean属性中的dependency-check包括( )。【选三项】
A.no B.objects C.simple D.all
- 在Spring中,下列关于Bean属性中的singleton的说法,正确的有(CD )。【选两项】
A.用于定义Bean是否为Singleton
B.默认为false
C.默认为true
D.在BeanFactory作用范围内,仅维护此Bean的一个实例
- Spring包括两种不同的容器,分别是( )。【选两项】
A.BeanFactory
B.FileSystemXmlApplicationContext
C.ClassPathXmlApplicationContext
D.ApplicationContext
- 下列能够判断Spring容器是否包含ID为proBean的Bean的代码为( )。
A.boolean flag = beanFactory.containsBean("proBean");
B.PropertiesBean propertiesBean= (PropertiesBean)beanFactory.getBean("proBean");
C.Class classType = beanFactory.getType("proBean");
D.PropertiesBean propertiesBean= (PropertiesBean)beanFactory.getBean("proBean", PropertiesBean.class);
- 在Spring中,ApplicationContext继承了BeanFactory接口,提供BeanFactory的所有功能,同时具有部分新功能,包括(ABC )。【选三项】
A.提供国际化的支持 B.资源访问 C.事务传递 D.载入多个配置文件
- Spring常见的注入方式有( AD)。【选两项】
A.setter注入 B.getter注入 C.接口注入 D.构造注入
- 在Spring中,设值注入的优点包括( )。【选三项】
A.对于习惯了传统JavaBean开发的程序员而言,通过setter方法设定依赖关系更加直观自然
B.当依赖关系(或继承关系)较复杂时,构造注入方式的构造函数相当庞大。此时若使用设值注入的方式,则简单快捷
C.某些第三方类库要求组件必须提供默认的构造函数,此时构造注入方式的依赖注入机制会突显其局限性,难以完成期望功能
D.在构造期即能创建完整、合法的对象
- 在Spring中,构造注入的优点包括( )。【选三项】
A.将创建完整、合法对象的工作任务转交给构造函数外的其他方法
B.避免了编写繁琐的setter方法,所有的依赖关系都在构造函数中设定
C.由于不存在setter方法,而是在构造时由容器一次性设定依赖关系,因而组件在创建之后即处于相对不变的稳定状态,无须担心上层代码在调用过程中执行setter方法时破坏组件之间的依赖关系
D.通过构造子注入,可以在构造函数中决定依赖关系的注入顺序?????????
- 在Spring中,关于IOC的理解,下列说法正确的有( )。【选两项】
A. 控制反转
B. 对象被动地接受依赖类
C. 对象主动地寻找依赖类
D. 一定要用接口
- 下列关于在Spring中配置Bean的id属性的说法,正确的有( )。【选两项】
A. id属性值可以重复
B. id属性值不可以重复
C. id属性是必须的,没有id属性会报错
D. id属性不是必须的
- 在Spring中,关于依赖注入,下列选项中说法错误的是( )。
A. 依赖注入能够独立开发各组件,然后根据组件间的关系进行组装
B. 依赖注入使组件之间相互依赖、相互制约
C. 依赖注入提倡使用接口编程
D. 依赖注入指对象在使用时动态注入
- 在Spring中,下列关于setter注入和构造注入的说法,正确的有( )。【选两项】
A.执行效果完全相同
B.注入依赖关系注入时机不同
C.setter注入方式依赖对象先注入
D.构造注入方式依赖对象先注入
- 在Spring中,下列关于AOP的说法正确的是( )。
A.AOP为OOP的补充和完善
B.AOP为OOA的补充和完善
C.AOP将逐渐代替OOP
D.AOP将逐渐代替OOA
- 在Spring中,AOP将软件系统分为两个部分,分别是( )。【选两项】
A.切面 B.业务处理 C.核心关注点 D.横切关注点
- 在Spring中,实现AOP代理时,下列说法正确的有( )。【选三项】
A.Spring默认使用用于接口的JDK动态代理
B.Spring只能使用JDK动态代理
C.Spring也可以使用CGLIB代理
D.Spring主要使用JDK动态代理
- 在Spring中,使用Java实现代理方式需实现InvocationHandler接口,且必须实现
invoke(Object proxy, Method method, Object[] args)方法,则下列说法正确的有( )。【选三项】
A.第一个参数是目标类
B.第二个参数Method由被代理接口的方法调用
C.第三个参数是方法调用的参数
D.当程序调用代理的目标方法时,会自动变为调用invoke方法
- 在Spring中,Proxy.newProxyInstance(mobile.getClass().getClassLoader(),mobile.getClass().getInterfaces(), this) 方法根据接口数组动态创建代理类实例,下列说法不正确的是( )。
A.第一个参数用于创建动态代理的ClassLoader对象
B.第二个参数为代理对象
C.第三个参数为代理包含的处理实例
D.第二个参数为接口数组
- Spring的环绕通知必须实现的接口是( )。
A.InvocationHandler
B.MethodInterceptor
C.MethodBeforeAdvice
D.AfterReturningAdvice
- Spring的后置通知必须实现的接口是( )。
A.InvocationHandler
B.MethodInterceptor
C.MethodBeforeAdvice
D.AfterReturningAdvice
- 在Spring中,ProxyFactoryBean继承了父类ProxyCreatorSupport的所有配置属性,同时添加了部分独有属性interceptorNames,下列说法正确的有( )。【选两项】
A.可以通过该属性指定多个将织入目标对象的Advice
B.采用类似ProxyFactory的addAdvice方法来逐一添加
C.采用类似ProxyFactory的addAdvisor方法来逐一添加
D.此属性属于Collection类型,可以通过配置元素添加需要的拦截器名称
- 在Spring中,下列关于AOP的理解,正确的有( )。【选两项】(A/B选项不完整)
A. 面向纵向的 B. 面向横向的 C. AOP关注的是面 D. AOP关注的是点
- 在Spring框架中,面向方面编程(AOP)的目标在于( )。
A. 编写程序时无须关注其依赖组件的实现
B. 封装JDBC访问数据库的代码,简化数据访问层的重复性代码
C. 将程序中涉及的公共问题集中解决
D. 可以通过Web服务调用
- 在Spring中,下面的代码定义了一个前置通知类,则下列选项中,说法错误的是( )。
public class LogAdvice implements MethodBeforeAdvice{
public void before(Method m,Object[]arges,Object target) throws Throwable{
System.out.println(m.getName()+"(" + Arrays.toString(args) +")";
}
}
A. 方法before是MethodBeforeAdvice接口中定义的方法
B. 参数m是被通知的目标方法
C. 参数args是调用方法的参数
D. 参数target是代理类
- 通过Spring构建Hibernate,存在的优点有( )。【选三项】
A.测试简单
B.异常封装
C.通用的代码管理
D.综合的事务管理
- 在SSH整合时,findByExample(Account instance)方法的作用是( )。
A.根据一个属性的值查询
B.将传入的对象状态设置为Transient状态
C.根据对象查询,查询条件为对象的属性值
D.添加与修改,类似于saveOrUpdate
- 在Spring和Hibernate的整合过程中,各对象注入的顺序是( )。(空格)
A.DataSource->SessionFactory-> Biz -> DAO
B.SessionFactory -> DataSource ->DAO->Biz
C.DataSource->SessionFactory->DAO->Biz
D.SessionFactory -> DataSource -> Biz -> DAO
- 在Spring包装Hibernate后,能够用于保存数据的方法有( )。【选三项】
A. save B. load C. saveOrUpdate D. merge
- 关于Spring与Hibernate集成,下列说法错误的是( )。
A. 通过集成Spring与Hibernate,以Spring管理程序的依赖关系,将SessionFactory
注入DataSource
B. 通过Spring,在Biz层代码中无须直接实例化DAO类,而是通过注入获得
C. 通过Spring,在DAO类中无须实例化SessionFactory,而是通过注入获得
D. Spring提供HibernateDaoSupport类来简化Hibernate的使用
- Spring整合Hibernate后,下列关于findByCriteria方法的说法正确的是( )。
A. 参数是HQL
B. 参数是Retrictions对象
C. 参数是DetachedCriteria对象
D. 该方法不支持分页
- 关于Spring对Hibernate提供的支持,下列说法错误的是( )。
A. 提供了综合的事务管理 B. 提供了统一的异常继承体系
C. 便于测试 D. 没有给查询提供良好的支持
- 在Spring中,下列说法正确的是( )。
A. Spring DAO需要注入DataSource B. Spring DAO需要注入SessionFactory
C. DataSource需要注入SessionFactory D. Spring DAO无须注入SessionFactory
- 在Web启动时创建ApplicationContext,下列选项错误的是( )。
A.
B.
C.
/WEB-INF/classes/applicationContext.xml,(逗号去掉否)
/WEB-INF/classes/applicationContext_biz.xml
D.
- Spring IOC容器管理Action的方式有( )。【选两项】
A.使用org.springframework.web.struts.DelegatingRequestProcessor
B.使用org.springframework.web.struts.DelegatingActionProxy
C.使用org.springframework.web.context.ContextLoaderListener
D.使用org.springframework.web.context.ContextLoaderServlet
- 使用org.springframework.web.struts.DelegatingActionProxy时,需要什么配置?( )
A.需要在struts-config.xml中配置
B.需要在web.xml中配置
C.需要在hibernate.cfg.xml中配置
D.需要在applicationContext.xml中配置
- SSH整合的优点有( )。【选两项】
A.实现了视图、控制器与模型的彻底分离
B.实现了业务逻辑层与持久层的分离
C.具有可扩展性
D.具有可维护性
- 在Spring中,BeanFactory由org.springframework.beans.factory.BeanFactory接口定义,是工厂模式的实现,其作用包括( )。【选三项】
A.负责创建和管理Bean
B.负责在实例化Bean之前创建Bean之间的联系
C.创建及分发Bean
D.参与到Bean生命周期中,调用对象的初始化函数及析构函数
- Spring的优点包括( )。【选三项】
A.低入侵式设计,代码污染低
B.独立于各种服务器,真正实现Write Once、Run Anywhere
C.Spring的AOP机制降低了业务对象替换的复杂性
D.Spring的高度开放性,不强制要求应用完全依赖于Spring
- Spring实现了( )两种基本设计模式。【选两项】
A.门面模式 B.工厂模式 C.单态模式 D.多态模式
- 单态模式的优势不包括( )。
A.尽量减少Java对象的创建和销毁时的开销
B.避免Java类的频繁实例化
C.让相同类的全部实例共享同一内存区
D.无须要求一个类只有一个实例
- Spring的核心机制是( )。
A.依赖注入 B.AOP C.声明式事务 D.资源访问
- Spring依赖注入对调用者和被调用者是否有要求?( )
A.对调用者有要求
B.对被调用者有要求
C.对调用者和被调用者都没有要求
D.以上说法都不正确
- Spring以Bean的方式管理所有的组件,此处的Bean不包括( )。
A.任何Java对象
B.任何Java组件
C.任何JavaBean
D.必须符合规范的JavaBean
- 在Spring中,用于产生Bean工厂的是( )。
A.Spring的BeanFactory
B.Spring的AOP
C.Spring的资源
D.Spring的核心库
- 对应web应用,无须在代码中手动实例化ApplicationContext,可通过ContextLoader声明式地创建。ContextLoader有两个实现类,分别是( )。【选两项】
A.ContextLoaderListener
B.ContextWebListener
C.ContextLoaderServlet
D.ContextWebServlet
- 在Spring中,AOP框架具有的两个主要特征是( )。【选两项】
A.各部分之间良好的隔离性
B.可维护性
C.源代码无关性
D.可扩展性
////end
本文内容总结:spring测试
原文链接:https://www.cnblogs.com/understander/p/6056448.html
以上是 spring测试 的全部内容, 来源链接: utcz.com/z/296528.html