Spring练习题_第1页
Spring练习题_第2页
Spring练习题_第3页
Spring练习题_第4页
Spring练习题_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、Spring练习题1. 请你谈谈SSH整合。Struts 是一个表示层框架,主要作用是界面展示,接受请求,分发请求;在mvc框架中,struts属于vc层次 负责界面,负责mvc关系的分发;Hibernate 是一个持久化层框架,他只负责与关系数据库的操作Spring 是一个业务层框架 是一个整合的框架,能够很好地黏合表示层与持久层2. 解释一下DI(Dependency Injection,依赖注入)和IoC(Inversion of Control,控制反转)。答:依赖注入DI是一个程序设计模式和架构模型, 一些时候也称作控制反转,尽管在技术上来讲,依赖注入是一个IOC的特殊实现,依赖注入

2、是指一个对象应用另外一个对象来提供一个特殊的能力,控制反转和依赖注入的根本思想就是把类的依赖从类内部转化到外部以减少依赖应用控制反转,对象在被创立的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。3. 什么是AOP,AOP的作用是什么?AOP为Aspect Oriented Programming的缩写,意为:面向切面编程也叫面向方面,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,

3、设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。4. 根据自己的理解谈谈以下几个概念:切面Aspect、通知Advice、切入点Pointcut、织入Weaving。切面Aspect 切面,对象操作过程中的截面,指需要实现的交叉功能。连接点JoinPoint程序运行过程中的某个阶段点。如某个方法调用,或者某个异常被抛出。在这个阶段点插入切面。通知Advice在某个连接点所采用的处理逻辑,即切面的实际实现。切点(PointCut)一系列连接点的集合,指明Advice将在何时触发,即Advice应用在哪些连接点5. 描述一下spring中实现DIdepend

4、ency injection的几种方式。设置注入:指的是setter()的方式传入被调用者的实例;构造注入:用构造方法来完成依赖注入的设定;6. 请介绍下spring中bean的作用域及生命周期。 Bean的作用域singleton 在每个Spring IoC容器中一个bean定义只有一个对象实例。默认情况下会在容器启动时初始化bean,但我们可以指定Bean节点的lazy-init=“true来延迟初始化bean,这时候,只有第一次获取bean会才初始化bean。如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“totype

5、 每次沉着器获取bean都是新的对象。.request .session Bean的声明周期:定义Bean初始化Bean调用Bean也就是使用Bean销毁Bean.global sessi7. 如何使用Spring实现国际化? Spring 定义了访问国际化信息的MessageSource接口,ApplicationContext接口继承了MessageSource接口,ApplicationContext加载时,自动查找context中的MessageSource bean .找到后脑实例化空的StaticMagessageSource bean,改bean能够接受 :getMessage(

6、String code,object ,args,Locale locale)getMessage(String code,object ,args,String defaultMessage,Locale locale)getMessage(MessageSourceResolvable resolvable,Locale locale)的调用实现国际化8. 下面关于AOP的说法错误的选项是( )。A. AOP将散落在系统中的“方面代码集中实现B. AOP有助于提高系统的可维护性C. AOP已经表现出了将要代替面向对象的趋势D. AOP是一种设计模式,Spring提供了一种实现9. 下面关于

7、Spring的说法中错误的选项是 。A. Spring是一系列轻量级Java EE框架的集合B. Spring中包含一个“依赖注入模式的实现C. 使用Spring可以实现声明式事务D. Spring提供了AOP方式的日志系统10. 关于声明事务的说法,下面错误的选项是( ).A. Spring采取AOP的方式实现声明式事务B. 声明式事务是非侵入式的,可以不修改原来代码就给系统增加事务支持C. 配置声明式事务需要tx和aop两个命名空间的支持D. 配置声明式事务时我们主要关注“在那儿和“采取什么样的事务策略11. 以下关于Spring AOP的说法错误的选项是 。A. 首先要编写方面代码,实现

8、MethodBeforeAdvice接口B. Spring AOP采用拦截方法调用的方式实现,可以在调用方法前、调用后、抛出异常时拦截C. Spring AOP采用代理的方式实现,常用代理对象的类别为org.springframework. aop.framework.ProxyFactoryBeanD. Spring AOP可以在对目标target不做任何修改的情况下增加程序功能12. 数据库中存在一张STUDENT表(SID,NAME,SEX,AGE,SCHOOL)。SID为整型,其余字段为字符串,长度自定。1) 编写一个POJO类Student及其Hibernate映射文件;2) 编写程

9、序插入一条记录1,"王二小","男","20","CWNU";3) 使用HQL语句查询使用投影查询第一条记录的NAME,SCHOOL字段,并打印输出到控制台。Student实体代码:package com.moder;public class Student public int getSid() return sid;public void setSid(int sid) this.sid = sid;public int getAge() return age;public void setAge(int ag

10、e) this.age = age;public String getSex() return sex;public void setSex(String sex) this.sex = sex;public String getName() return name;public void setName(String name) = name;public String getSchool() return school;public void setSchool(String school) this.school = school;private int sid;pr

11、ivate int age;private String sex;private String name;private String school;Student.hbm.xml代码:<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN"" :/<hibernate-mapping><class name="com.moder.Student" c

12、atalog="wds"><id name="sid"><generator class="native"></generator></id><property name="name"></property><property name="sex"></property><property name="age"></property><prope

13、rty name="school"></property></class></hibernate-mapping>测试代码:public void selectStudent()Session session = HibernateSessionFactory.getSession();session.beginTransaction();String sql="from Student as u where u.id=1"try Query query=session.createQuery(sql);List

14、<Student> list=query.list();for(Student u:list)System.out.println(u.getName();System.out.println(u.getSchool();session.getTransaction() mit();session.close(); catch (Exception e) e.printStackTrace();插入代码:public void addStudent() Session session = HibernateSessionFactory.getSession();System.out

15、.println(session);Student student = new Student();student.setAge(1);student.setName("ddd");student.setSchool("tt");student.setSex("tt");session.beginTransaction();try session.save(student); catch (Exception e) e.printStackTrace();session.getTransaction() mit();session.c

16、lose();13. 某程序系统中有如下几个类。public class Equip/装备private String name;/装备名称private String type;/装备类型,头盔、铠甲等private Long speedPlus;/速度增效private Long attackPlus;/攻击增效private Long defencePlus;/防御增效/Getters & Setterspublic class Player/玩家private Equip armet;/头盔private Equip loricae;/铠甲private Equip boot;

17、/靴子private Equip ring;/指环/Getters & Setterspublic void updateEquip(Equip equip)if("头盔".equals(equip.getType()System.out.println(armet.getName()+"升级为"+ equip.getName();this.armet= equip;1) 在Spring配置文件中,配置一个拥有如下装备的玩家“zhangsan。装 备战神头盔连环锁子甲波斯追风靴蓝魔指环速度增效2688攻击增效44212防御增效615322) 编写

18、程序代码,以如下格式输出蓝魔指环的属性。蓝魔指环速度增加:8;攻击增加:12;防御增加:214. 下面关于“依赖注入的说法,错误的选项是 A.将组件间的依赖关系采取配置文件的方式管理,而不是硬编码在代码中B.降低了组件间的耦合,使程序更容易维护和升级C.促进了“面向接口编程,使构建大规模程序更轻松D.需要定义大量接口,增加了编码复杂度15. 关于Spring AOP,下面说法错误的选项是 A.支持前置通知、后置通知、环绕通知 B.采用代理的方式实现C.在Spring2.0以前的版本中通过<aop:config>、<aop:pointcut>和<aop:adviso

19、r>配置 D.与“依赖注入实现紧密结合16. Spring各模块之间关系 A.Spring各模块之间是紧密联系的,相互依赖的B.Spring各模块之间可以单独存在C.Spring的核心模块是必须的,其他模块是基于核心模块D.Spring的核心模块不是必须的,可以不要17. 举例说明使用XML方式配置AOP所使用的类、标签和属性。<aop:config> <aop:aspect id="aspectDemo" ref="aspectBean"> <aop:pointcut id="somePointcut&qu

20、ot; expression="execution(* annoaop ponent.business*(.)" /> <aop:before pointcut-ref="somePointcut" method="validateUser" /> <aop:before pointcut-ref="somePointcut" method="beginTransaction" /> <aop:after-returning pointcut-ref="somePointcut" method="endTransaction" /> <aop:after-returning pointcut-ref="somePointcut" method="writeLogInfo" /> </aop:aspect> </aop:config> <bean id="aspectBean" class="annoaop.Aspect

温馨提示

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

评论

0/150

提交评论