Spring练习题

Spring练习题

1. 请你谈谈SSH整合。

Struts 是一个表示层框架,主要作用是界面展示,接受请求,分发请求;

mvc框架中,struts属于vc层次 负责界面,负责mvc关系的分发;

Hibernate 是一个持久化层框架,他只负责与关系数据库的操作

Spring 是一个业务层框架 是一个整合的框架,能够很好地黏合表示层与持久层

2. 解释一下DI(Dependency Injection,依赖注入)IoC(Inversion of Control,控制反转)

答:依赖注入DI是一个程序设计模式和架构模型, 一些时候也称作控制反转,尽管在技术上来讲,依赖注入是一个IOC的特殊实现,依赖注入是指一个对象应用另外一个对象来提供一个特殊的能力,控制反转和依赖注入的基本思想就是把类的依赖从类内部转化到外部以减少依赖
应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。

3. 什么是AOPAOP的作用是什么?

AOPAspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。

4. 根据自己的理解谈谈以下几个概念:切面(Aspect)、通知(Advice)、切入点(Pointcut)、织入(Weaving)。

切面(Aspect

切面,对象操作过程中的截面,指需要实现的交叉功能。

连接点(JoinPoint

程序运行过程中的某个阶段点。如某个方法调用,或者某个异常被抛出。在这个阶段点插入切面。

通知(Advice

在某个连接点所采用的处理逻辑,即切面的实际实现。

切点(PointCut)

一系列连接点的集合,指明Advice将在何时触发,即Advice应用在哪些连接点

5. 描述一下spring中实现DIdependency injection)的几种方式。

设置注入:指的是setter()的方式传入被调用者的实例;

构造注入:用构造方法来完成依赖注入的设定;

6. 请介绍下springbean的作用域及生命周期。

Bean的作用域

singleton

在每个Spring IoC容器中一个bean定义只有一个对象实例。默认情况下会在容器启动时初始化bean,但我们可以指定Bean节点的lazy-init=true”来延迟初始化bean

这时候,只有第一次获取bean会才初始化bean。如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=true”。

prototype

每次从容器获取bean都是新的对象。

.request

.session

Bean的声明周期:

定义Bean

初始化Bean

调用Bean(也就是使用Bean

销毁Bean

.global sessi

7. 如何使用Spring实现国际化?

Spring 定义了访问国际化信息的MessageSource接口,ApplicationContext接口继承了MessageSource接口,ApplicationContext加载时,自动查找context中的MessageSource bean .找到后脑实例化空的StaticMagessageSource bean,bean能够接受
getMessage(String codeobject[] ,args,Locale locale)

getMessage(String codeobject[] ,args,String defaultMessage,Locale locale)

getMessage(MessageSourceResolvable resolvable,Locale locale)

的调用实现国际化

8. 下面关于AOP的说法错误的是( )

A. AOP将散落在系统中的“方面”代码集中实现

B. AOP有助于提高系统的可维护性

C. AOP已经表现出了将要代替面向对象的趋势

D. AOP是一种设计模式,Spring提供了一种实现

9. 下面关于Spring的说法中错误的是( )。

A. Spring是一系列轻量级Java EE框架的集合

B. Spring中包含一个“依赖注入”模式的实现

C. 使用Spring可以实现声明式事务

D. Spring提供了AOP方式的日志系统

10. 关于声明事务的说法,下面错误的是( ).

A. Spring采取AOP的方式实现声明式事务

B. 声明式事务是非侵入式的,可以不修改原来代码就给系统增加事务支持

C. 配置声明式事务需要txaop两个命名空间的支持

D. 配置声明式事务时我们主要关注“在那儿”和“采取什么样的事务策略”

11. 下列关于Spring AOP的说法错误的是( )。

A. 首先要编写方面代码,实现MethodBeforeAdvice接口

B. Spring AOP采用拦截方法调用的方式实现,可以在调用方法前、调用后、抛出异常时拦截

C. Spring AOP采用代理的方式实现,常用代理对象的类别为org.springframework. aop.framework.ProxyFactoryBean

D. Spring AOP可以在对目标(target)不做任何修改的情况下增加程序功能

12. 已知数据库中存在一张STUDENT(SID,NAME,SEX,AGE,SCHOOL)SID为整型,其余字段为字符串,长度自定。

1) 编写一个POJOStudent及其Hibernate映射文件;

2) 编写程序插入一条记录(1"王二小""""20""CWNU");

3) 使用HQL语句查询(使用投影查询)第一条记录的NAMESCHOOL字段,并打印输出到控制台。

Student实体代码:

Student.hbm.xml代码:

测试代码:

插入代码:

13. 某程序系统中有如下几个类。

public class Equip{ //装备

private String name; //装备名称

private String type; //装备类型,头盔、铠甲等

private Long speedPlus; //速度增效

private Long attackPlus; //攻击增效

private Long defencePlus; //防御增效

//Getters & Setters

}

public class Player{ //玩家

private Equip armet; //头盔

private Equip loricae; //铠甲

private Equip boot; //靴子

private Equip ring; //指环

//Getters & Setters

public void updateEquip(Equip equip){

if("头盔".equals(equip.getType())){

System.out.println(armet.getName()+"升级为"+ equip.getName());

this.armet= equip;

}

}

}

1) Spring配置文件中,配置一个拥有如下装备的玩家“zhangsan”。

2) 编写程序代码,以如下格式输出蓝魔指环的属性。

蓝魔指环[速度增加:8;攻击增加:12;防御增加:2]

14. 下面关于“依赖注入”的说法,错误的是

A.将组件间的依赖关系采取配置文件的方式管理,而不是硬编码在代码中

B.降低了组件间的耦合,使程序更容易维护和升级

C.促进了“面向接口”编程,使构建大规模程序更轻松

D.需要定义大量接口,增加了编码复杂度

15. 关于Spring AOP,下面说法错误的是

A.支持前置通知、后置通知、环绕通知

B.采用代理的方式实现

C.Spring2.0以前的版本中通过配置

D.与“依赖注入”实现紧密结合

16. Spring各模块之间关系

A.Spring各模块之间是紧密联系的,相互依赖的

B.Spring各模块之间可以单独存在

C.Spring的核心模块是必须的,其他模块是基于核心模块

D.Spring的核心模块不是必须的,可以不要

17. 举例说明使用XML方式配置AOP所使用的类、标签和属性。

expression="execution(* annoaop.Component.business*(..))" />

method="validateUser" />

method="beginTransaction" />

method="endTransaction" />

method="writeLogInfo" />

class="annoaop.AspectBean">

class="annoaop.ComponentImpl">

类:AspectBean

标签:

属性:expresion

18. 假设某个bean要使用某种类型的资源,那么一般情况下应该把资源的释放放到bean的生命周期中( )阶段

A.定义

B.初始化

C.使用

D.销毁

19. 有关spring中配置数据源,下列说法正确的是(
A.配置数据源的bean名字只能是datasource
B.datasource接口位于java.sql包中
C.在一个Spring配置文件中可以配置多个数据源
D.datasource就是一个数据库连接

20. 关于BeanFactory说法错误的是( )
A.它是一个接口
B.最常用的是xmlBeanFactory
C.BeanFactory所管理的bean的定义只能来自于一个配置文件
D.ApplicationContext也是一个BeanFactory

21. Sessionpersist()save()方法区别。

Seve()它要返回对象标示符,所以会立即执行sql inset 且保存任何状态的对象。

Persist() 把一个瞬时态的实例化。但是并:不保证 对象标示符被立即填入到持久化实例中,标示符的填写可能被推迟到flush的时间 ,且不能保存游离态的对象,没返回值。

《Spring练习题.doc》
将本文的Word文档下载,方便收藏和打印
推荐:
下载文档
热门推荐
相关推荐