Spring练习题库面试题汇总考试复习Word格式文档下载.docx

上传人:b****6 文档编号:18143471 上传时间:2022-12-13 格式:DOCX 页数:40 大小:47.02KB
下载 相关 举报
Spring练习题库面试题汇总考试复习Word格式文档下载.docx_第1页
第1页 / 共40页
Spring练习题库面试题汇总考试复习Word格式文档下载.docx_第2页
第2页 / 共40页
Spring练习题库面试题汇总考试复习Word格式文档下载.docx_第3页
第3页 / 共40页
Spring练习题库面试题汇总考试复习Word格式文档下载.docx_第4页
第4页 / 共40页
Spring练习题库面试题汇总考试复习Word格式文档下载.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

Spring练习题库面试题汇总考试复习Word格式文档下载.docx

《Spring练习题库面试题汇总考试复习Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Spring练习题库面试题汇总考试复习Word格式文档下载.docx(40页珍藏版)》请在冰豆网上搜索。

Spring练习题库面试题汇总考试复习Word格式文档下载.docx

一般事务定义步骤:

TransactionDefinitiontd=newTransactionDefinition();

TransactionStatusts=transactionManager.getTransaction(td);

try

{//dosth

transactionMmit(ts);

}

catch(Exceptione){transactionManager.rollback(ts);

spring提供的事务管理可以分为两类:

编程式的和声明式的。

编程式的,比较灵活,但是代码量大,存在重复的代码比较多;

声明式的比编程式的更灵活。

编程式主要使用transactionTemplate。

省略了部分的提交,回滚,一系列的事务对象定义,需注入事务管理对象.

voidadd()

{

transactionTemplate.execute(newTransactionCallback(){

pulicObjectdoInTransaction(TransactionStatusts)

{//dosth}

声明式:

使用TransactionProxyFactoryBean:

PROPAGATION_REQUIREDPROPAGATION_REQUIREDPROPAGATION_REQUIRED,readOnly

围绕Poxy的动态代理能够自动的提交和回滚事务

org.springframework.transaction.interceptor.TransactionProxyFactoryBean

PROPAGATION_REQUIRED–支持当前事务,如果当前没有事务,就新建一个事务。

这是最常见的选择。

PROPAGATION_SUPPORTS–支持当前事务,如果当前没有事务,就以非事务方式执行。

PROPAGATION_MANDATORY–支持当前事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW–新建事务,如果当前存在事务,把当前事务挂起。

PROPAGATION_NOT_SUPPORTED–以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

PROPAGATION_NEVER–以非事务方式执行,如果当前存在事务,则抛出异常。

PROPAGATION_NESTED–如果当前存在事务,则在嵌套事务内执行。

如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。

六、如何在Spring的applicationContext.xml里面使用JNDI而不是datasource?

可以使用”org.springframework.jndi.JndiObjectFactoryBean”来实现。

示例如下:

<

beanid=”dataSource”>

 

<

propertyname=”jndiName”>

 

value>

java:

comp/env/jdbc/appfuse<

/value>

/property>

/bean>

七、Spring里面如何配置数据库驱动?

使用org.springframework.jdbc.datasource.DriverManagerDataSource”数据源来配置数据库驱动。

propertyname=”driverClassName”>

org.hsqldb.jdbcDriver<

propertyname=”url”>

jdbc:

hsqldb:

db/appfuse<

propertyname=”username”>

sa<

propertyname=”password”>

八、Spring里面applicationContext.xml文件能不能改成其他文件名?

ContextLoaderListener是一个ServletContextListener,它在你的web应用启动的时候初始化。

缺省情况下,它会在WEB-INF/applicationContext.xml文件找Spring的配置。

你可以通过定义一个<

context-param>

元素名字为”contextConfigLocation”来改变Spring配置文件的位置。

listener>

listener-class>

org.springframework.web.context.ContextLoaderListener

param-name>

contextConfigLocation<

/param-name>

param-value>

/WEB-INF/xyz.xml<

/param-value>

/context-param>

/listener-class>

/listener>

九、如何在web应用里面配置spring?

在J2EE的web应用里面配置spring非常简单,最简单的只需要把spring得ContextLoaderListener添加到你的web.xml文件里面就可以了,示例如下:

org.springframework.web.context.ContextLoaderListener<

十、Spring里面如何定义hibernatemapping?

添加hibernatemapping文件到web/WEB-INF目录下的applicationContext.xml文件里面。

propertyname=”mappingResources”>

list>

org/appfuse/model/User.hbm.xml<

/list>

十一、两种依赖注入的类型都是什么?

两种依赖注入的类型分别是setter注入和构造方法注入。

setter注入:

一般情况下所有的javabean,我们都会使用setter方法和getter方法去设置和获取属性的值,示例如下:

publicclassnamebean{

String 

name;

publicvoidsetName(Stringa){

name=a;

}

publicStringgetName(){

returnname;

我们会创建一个bean的实例然后设置属性的值,spring的配置文件如下:

beanid=”bean1″ 

>

property 

name=”name”>

tom<

Spring会调用setName方法来只是name熟悉为tom

构造方法注入:

构造方法注入中,我们使用带参数的构造方法如下:

Stringname;

publicnamebean(Stringa){

我们会在创建bean实例的时候以newnamebean(”tom”)的方式来设置name属性,Spring配置文件如下:

constructor-arg>

MyBeanValue<

/constructor-arg>

使用constructor-arg标签来设置构造方法的参数。

十二、解释一下Dependencyinjection(DI,依赖注入)和IOC(Inversionofcontrol,控制反转)?

参考答案:

依赖注入DI是一个程序设计模式和架构模型,一些时候也称作控制反转,尽管在技术上来讲,依赖注入是一个IOC的特殊实现,依赖注入是指一个对象应用另外一个对象来提供一个特殊的能力,例如:

把一个数据库连接已参数的形式传到一个对象的结构方法里面而不是在那个对象内部自行创建一个连接。

控制反转和依赖注入的基本思想就是把类的依赖从类内部转化到外部以减少依赖

应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它。

也可以说,依赖被注入到对象中。

所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。

十三、spring中的BeanFactory与ApplicationContext的作用和区别?

作用:

1.BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的声明周期。

2.ApplicationContext除了提供上述BeanFactory所能提供的功能之外,还提供了更完整的框架功能:

a.国际化支持

b.资源访问:

Resourcers=ctx.getResource(”classpath:

config.properties”),“s”

c.事件传递:

通过实现ApplicationContextAware接口

3.常用的获取ApplicationContext的方法:

t:

从文件系统或者url指定的xml配置文件创建,参数为配置文件名或文件名数组

ClassPathXmlApplicationContext:

从classpath的xml配置文件创建,可以从jar包中读取配置文件

WebApplicationContextUtils:

从web应用的根目录读取配置文件,需要先在web.xml中配置,可以配置监听器或者servlet来实现

servlet>

servlet-name>

context<

/servlet-name>

servlet-class>

org.springframework.web.context.ContextLoaderServlet<

/servlet-class>

load-on-startup>

1<

/load-on-startup>

/servlet>

这两种方式都默认配置文件为web-inf/applicationContext.xml,也可使用context-param指定配置文件

/WEB-INF/myApplicationContext.xml<

十四、如何在web环境中配置applicationContext.xml文件?

或:

org.springframework.web.context.ContextLoaderServlet

通过如下方法取出applicationContext实例:

ApplicationContextac=WebApplicationContextUtils.getWebApplicationContext(this.getServletContext);

十五、如何配置spring+struts?

在struts-config.xml加入一个插件,通过它加载applicationContext.xml

在struts-config.xml修改action-mapping标记,具体action交给了DelegateActionProxy⌝

通过DelegateActionProxy进入一spring的环境。

υ

在spring的applicationContext.xml加入⌝<

beanname=”/login”class=”"

singleton=”false”/>

十六、spring+hibernate的配置文件中的主要类有那些?

如何配置?

在myeclipse中先加入spring环境再加入hibernate环境。

如果spring与hibernate结合在一起可以不需要hibernate.cfg.xml文件是否正确?

spring+hibernate的配置文件中的主要类有那些?

dataSource

sessionFactory:

hibernate.cfg.xml

transactionManager

userDao(extendsHibernateDaoSupport) 

sessionFactory

facade

proxy

十七、在spring中如何配容器的事务管理,相关的类有那些?

Datasouce

userDao要注入

Proxy代理

Target:

userDao:

代理对象(目标对象)

transactionAttributes(那些方法需要事务处理)

transactionManager(事务处理服务)

十八、在spring中如何配代码的事务管理?

通过如下类实现

TransactionTemplate

JdbcTemplate

十九、在spring中有几种事务管理,分别是什么?

代码管理的事务处理

TransactonTemplate的execute方法中的内部类TransactionCallback中的doInTransaction方法中使用。

publicvoidmake()

TransactionTemplatejtm=newTransactionTemplate(this.getTransactionManager());

jtm.execute(newmyClass1());

publicclassmyClass1implementsTransactionCallback

publicObjectdoInTransaction(TransactionStatustrans)

JdbcTemplatejdbc=newJdbcTemplate(dataSource);

jdbc.execute(”insertintocustomer(customerName)values(’b'

)”);

returnnull;

容器管理的事务处理

二十、spring的jdbc与传统的jdbc有什么区别,其核心类有那些?

Spring的jdbc:

节省代码,不管连接(Connection),不管事务、不管异常、不管关闭(con.close()ps.close)

JdbcTemplate(dataSource):

增、删、改、查

TransactionTemplate(transactionManager):

进行事务处理

二十一、spring与ejb2.0的事务管理比较的优缺点?

测试:

Spring:

pojo

Ejb:

二个接口一个类,一堆配置文件

事务类型

jdbcjta 

hibernate

jta

成本

Spring:

普通容器(tomcatjboss)

Ejb:

weblogicjboss

开发的周期:

Spring远比ejb快.

二十二、spring的配置的主要标签是什么?

有什么作用?

beans>

beanid=””class=””init=””destroy=””singleton=””>

propertyname=””>

reflocal>

/ref>

/beans>

二十三、如何在spring中实现国际化?

在applicationContext.xml加载一个bean

beanid=”messageSource”class=”org.springframework.context.support.ResourceBundleMessageSource”>

propertyname=”basename”>

message<

在src目录下建多个properties文件⌝

对于非英文的要用native2ascii⌝-encodinggb2312源 

目转化文件相关内容

其命名格式是message_语言_国家。

页面中的中显示提示信息,键名取键值。

当给定国家,系统会自动加载对应的国家的properties信息。

通过applictionContext.getMessage(“键名”,”参数”,”区域”)取出相关的信息。

二十四、Spring如何实现事件处理?

事件

ExtendsApplicationEvent

监听器

ImplementsApplicationListener

事件源

ImplementsApplicationContextAware

在applicationContext.xml中配置事件源、监听器

先得到事件源,调用事件源的方法,通知监听器。

二十五、如何加入Spring到web框架中?

在web.xml中加入如下同容,在启动web服务器时加载/WEB-INF/applicationContext.xml中的内容。

通过如下类得到ApplicationContext实例

WebApplicationContextUtils.getWebApplicationContext

二十六、Spring如何实现资源管理?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1