Spring练习题.docx
《Spring练习题.docx》由会员分享,可在线阅读,更多相关《Spring练习题.docx(11页珍藏版)》请在冰豆网上搜索。
Spring练习题
Spring练习题
D
1.
2.
3.如何使用Spring实现国际化?
Spring定义了访问国际化信息的MessageSource接口,ApplicationContext接口继承了MessageSource接口,ApplicationContext加载时,自动查找context中的MessageSourcebean.找到后脑实例化空的StaticMagessageSourcebean,改bean能够接受:
getMessage(Stringcode,object[],args,Localelocale)
getMessage(Stringcode,object[],args,StringdefaultMessage,Localelocale)
getMessage(MessageSourceResolvableresolvable,Localelocale)
的调用实现国际化
4.下面关于AOP的说法错误的是()。
A.AOP将散落在系统中的“方面”代码集中实现
B.AOP有助于提高系统的可维护性
C.AOP已经表现出了将要代替面向对象的趋势
D.AOP是一种设计模式,Spring提供了一种实现
5.下面关于Spring的说法中错误的是()。
A.Spring是一系列轻量级JavaEE框架的集合
B.Spring中包含一个“依赖注入”模式的实现
C.使用Spring可以实现声明式事务
D.Spring提供了AOP方式的日志系统
6.关于声明事务的说法,下面错误的是().
A.Spring采取AOP的方式实现声明式事务
B.声明式事务是非侵入式的,可以不修改原来代码就给系统增加事务支持
C.配置声明式事务需要tx和aop两个命名空间的支持
D.配置声明式事务时我们主要关注“在那儿”和“采取什么样的事务策略”
7.下列关于SpringAOP的说法错误的是()。
A.首先要编写方面代码,实现MethodBeforeAdvice接口
B.SpringAOP采用拦截方法调用的方式实现,可以在调用方法前、调用后、抛出异常时拦截
C.SpringAOP采用代理的方式实现,常用代理对象的类别为org.springframework.aop.framework.ProxyFactoryBean
D.SpringAOP可以在对目标(target)不做任何修改的情况下增加程序功能
8.已知数据库中存在一张STUDENT表(SID,NAME,SEX,AGE,SCHOOL)。
SID为整型,其余字段为字符串,长度自定。
1)编写一个POJO类Student及其Hibernate映射文件;
2)编写程序插入一条记录(1,"王二小","男","20","CWNU");
3)使用HQL语句查询(使用投影查询)第一条记录的NAME,SCHOOL字段,并打印输出到控制台。
Student实体代码:
packagecom.moder;
publicclassStudent{
publicintgetSid(){
returnsid;
}
publicvoidsetSid(intsid){
this.sid=sid;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
publicStringgetSex(){
returnsex;
}
publicvoidsetSex(Stringsex){
this.sex=sex;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetSchool(){
returnschool;
}
publicvoidsetSchool(Stringschool){
this.school=school;
}
privateintsid;
privateintage;
privateStringsex;
privateStringname;
privateStringschool;
}
Student.hbm.xml代码:
xmlversion="1.0"?
>
DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"
测试代码:
publicvoidselectStudent()
{
Sessionsession=HibernateSessionFactory.getSession();
session.beginTransaction();
Stringsql="fromStudentasuwhereu.id=1";
try{
Queryquery=session.createQuery(sql);
Listlist=query.list();
for(Studentu:
list){
System.out.println(u.getName());
System.out.println(u.getSchool());
}
session.getTransaction().commit();
session.close();
}catch(Exceptione){
e.printStackTrace();
}
}
插入代码:
publicvoidaddStudent(){
Sessionsession=HibernateSessionFactory.getSession();
System.out.println(session);
Studentstudent=newStudent();
student.setAge
(1);
student.setName("ddd");
student.setSchool("tt");
student.setSex("tt");
session.beginTransaction();
try{
session.save(student);
}catch(Exceptione){
e.printStackTrace();
}
session.getTransaction().commit();
session.close();
}
9.某程序系统中有如下几个类。
publicclassEquip{//装备
privateStringname;//装备名称
privateStringtype;//装备类型,头盔、铠甲等
privateLongspeedPlus;//速度增效
privateLongattackPlus;//攻击增效
privateLongdefencePlus;//防御增效
//Getters&Setters
…}
publicclassPlayer{//玩家
privateEquiparmet;//头盔
privateEquiploricae;//铠甲
privateEquipboot;//靴子
privateEquipring;//指环
//Getters&Setters
…
publicvoidupdateEquip(Equipequip){
if("头盔".equals(equip.getType())){
System.out.println(armet.getName()+"升级为"+equip.getName());
this.armet=equip;
}
…
}
}
1)在Spring配置文件中,配置一个拥有如下装备的玩家“zhangsan”。
装备
战神头盔
连环锁子甲
波斯追风靴
蓝魔指环
速度增效
2
6
8
8
攻击增效
4
4
2
12
防御增效
6
15
3
2
2)编写程序代码,以如下格式输出蓝魔指环的属性。
蓝魔指环[速度增加:
8;攻击增加:
12;防御增加:
2]
10.下面关于“依赖注入”的说法,错误的是
A.将组件间的依赖关系采取配置文件的方式管理,而不是硬编码在代码中
B.降低了组件间的耦合,使程序更容易维护和升级
C.促进了“面向接口”编程,使构建大规模程序更轻松
D.需要定义大量接口,增加了编码复杂度
11.关于SpringAOP,下面说法错误的是
A.支持前置通知、后置通知、环绕通知
B.采用代理的方式实现
C.在Spring2.0以前的版本中通过config>、pointcut>和advisor>配置
D.与“依赖注入”实现紧密结合
12.Spring各模块之间关系
A.Spring各模块之间是紧密联系的,相互依赖的
B.Spring各模块之间可以单独存在
C.Spring的核心模块是必须的,其他模块是基于核心模块
D.Spring的核心模块不是必须的,可以不要
13.举例说明使用XML方式配置AOP所使用的类、标签和属性。
config>
aspectid="aspectDemo"ref="aspectBean">
pointcutid="somePointcut"
expression="execution(*annoaop.Component.business*(..))"/>
beforepointcut-ref="somePointcut"
method="validateUser"/>
beforepointcut-ref="somePointcut"
method="beginTransaction"/>
after-returningpointcut-ref="somePointcut"
method="endTransaction"/>
after-returningpointcut-ref="somePointcut"
method="writeLogInfo"/>
aspect>
config>
class="annoaop.AspectBean">
class="annoaop.ComponentImpl">
类:
AspectBean;
标签:
config>pointcut>before>等
属性:
expresion
14.假设某个bean要使用某种类型的资源,那么一般情况下应该把资源的释放放到bean的生命周期中()阶段
A.定义
B.初始化
C.使用
D.销毁
15.有关spring中配置数据源,下列说法正确的是()
A.配置数据源的bean名字只能是datasource
B.datasource接口位于java.sql包中
C.在一个Spring配置文件中可以配置多个数据源
D.datasource就是一个数据库连接
16.关于BeanFactory说法错误的是()
A.它是一个接口
B.最常用的是xmlBeanFactory
C.BeanFactory所管理的bean的定义只能来自于一个配置文件
D.ApplicationContext也是一个BeanFactory
17.Session中persist()和save()方法区别。
Seve()它要返回对象标示符,所以会立即执行sqlinset且保存任何状态的对象。
Persist()把一个瞬时态的实例化。
但是并:
”不保证”对象标示符被立即填入到持久化实例中,标示符的填写可能被推迟到flush的时间,且不能保存游离态的对象,没返回值。