`
microjava
  • 浏览: 318735 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

spring经典面试题

阅读更多
一、spring工作原理:

1.spring mvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
3.DispatcherServlet请请求提交到目标Controller
4.Controller进行业务逻辑处理后,会返回一个ModelAndView
5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6.视图对象负责渲染返回给客户端。



二、为什么要用spring:

AOP 让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用 AOP 后,公共服务   (比 如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。

IOC 允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词 倒置 所表明的,IOC 就像反      过来的 JNDI。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straight construction),每一个对象都是用     其协作对象构造的。因此是由容器管理协作对象(collaborator)。

Spring即使一个AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替换对象。有了 Spring,只要用 JavaBean 属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象。

三、请你谈谈SSH整合:

SSH:
Struts(表示层)+Spring(业务层)+Hibernate(持久层)
Struts:
Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。
在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。(View:沿用JSP,HTTP,Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)
Hibernate:
Hibernate是一个持久层框架,它只负责与关系数据库的操作。
Spring:
Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。

四、介绍一下Spring的事务管理:

事务就是对一系列的数据库操作(比如插入多条数据)进行统一的提交或回滚操作,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之前的所有操作。
这样可以防止出现脏数据,防止数据库数据出现问题。
开发中为了避免这种情况一般都会进行事务管理。Spring中也有自己的事务管理机制,一般是使用TransactionMananger进行管理,可以通过Spring的注入来完成此功能。

spring提供了几个关于事务处理的类:
TransactionDefinition //事务属性定义
TranscationStatus //代表了当前的事务,可以提交,回滚。
PlatformTransactionManager这个是spring提供的用于管理事务的基础接口,其下有一个实现的抽象类AbstractPlatformTransactionManager,我们使用的事务管理类例如DataSourceTransactionManager等都是这个类的子类。

一般事务定义步骤:

TransactionDefinition td = new TransactionDefinition();
TransactionStatus ts = transactionManager.getTransaction(td);
try
{ //do sth
transactionManager.commit(ts);
}
catch(Exception e){transactionManager.rollback(ts);}

spring提供的事务管理可以分为两类:编程式的和声明式的。编程式的,比较灵活,但是代码量大,存在重复的代码比较多;声明式的比编程式的更灵活。

编程式主要使用transactionTemplate。省略了部分的提交,回滚,一系列的事务对象定义,需注入事务管理对象.
void add(){
transactionTemplate.execute( new TransactionCallback(){
pulic Object doInTransaction(TransactionStatus ts)
{ //do sth}
}
}

声明式:

使用TransactionProxyFactoryBean:


PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_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里面如何配置数据库驱动?

使用”org.springframework.jdbc.datasource.DriverManagerDataSource”数据源来配置数据库驱动。示例如下:
<bean id=”dataSource”>
    <property name=”driverClassName”>
        <value>org.hsqldb.jdbcDriver</value>
    </property>
    <property name=”url”>
        <value>jdbc:hsqldb:db/appfuse</value>
    </property>
    <property name=”username”><value>sa</value></property>
    <property name=”password”><value></value></property>
</bean>

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

ContextLoaderListener是一个ServletContextListener, 它在你的web应用启动的时候初始化。缺省情况下, 它会在WEB-INF/applicationContext.xml文件找Spring的配置。 你可以通过定义一个<context-param>元素名字为”contextConfigLocation”来改变Spring配置文件的位置。示例如下:

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/xyz.xml</param-value>
    </context-param>    </listener-class>
</listener>

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

在web.xml中加入如下同容,在启动web服务器时加载/WEB-INF/applicationContext.xml中的内容。
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
通过如下类得到ApplicationContext实例
    WebApplicationContextUtils.getWebApplicationContext

八、Spring里面如何定义hibernate mapping?

添加hibernate mapping 文件到web/WEB-INF目录下的applicationContext.xml文件里面。示例如下:
<property name=”mappingResources”>
    <list>
        <value>org/appfuse/model/User.hbm.xml</value>
    </list>
</property>

九、解释一下Dependency injection(DI,依赖注入)和IOC(Inversion of control,控制反转)?

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

十、spring中的BeanFactory与ApplicationContext的作用有哪些?

1. BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的声明周期。
2. ApplicationContext除了提供上述BeanFactory所能提供的功能之外,还提供了更完整的框架功能:

a. 国际化支持
b. 资源访问:Resource rs = ctx. getResource(”classpath:config.properties”), “file:c:/config.properties”
c. 事件传递:通过实现ApplicationContextAware接口
3. 常用的获取ApplicationContext的方法:
FileSystemXmlApplicationContext:从文件系统或者url指定的xml配置文件创建,参数为配置文件名或文件名数组
ClassPathXmlApplicationContext:从classpath的xml配置文件创建,可以从jar包中读取配置文件
WebApplicationContextUtils:从web应用的根目录读取配置文件,需要先在web.xml中配置,可以配置监听器或者servlet来实现
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<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指定配置文件
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/myApplicationContext.xml</param-value>
</context-param>

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

<listener>
   <listener-class>
    org.springframework.web.context.ContextLoaderListener
   </listener-class>
</listener>
或:
<servlet>
   <servlet-name>context</servlet-name>
    <servlet-class>
     org.springframework.web.context.ContextLoaderServlet
    </servlet-class>
   <load-on-startup>1</load-on-startup>
</servlet>
通过如下方法取出applicationContext实例:
ApplicationContext ac=WebApplicationContextUtils.getWebApplicationContext(this.getServletContext);

十二、如何配置spring+struts?

在struts-config.xml加入一个插件,通过它加载applicationContext.xml
? 在struts-config.xml修改action-mapping标记,具体action交给了DelegateActionProxy
? 通过DelegateActionProxy进入一spring的环境。
? 在spring的applicationContext.xml加入<bean name=”/login” class=”" singleton=”false”/>

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

dataSource
   sessionFactory:hibernate.cfg.xml
   transactionManager
   userDao (extends HibernateDaoSupport)
   sessionFactory
   facade
   proxy
   sessionFactory
   transactionManager
   facade

在myeclipse中先加入spring环境再加入hibernate环境。
如果spring与hibernate结合在一起可以不需要hibernate.cfg.xml文件是否正确

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

在applicationContext.xml加载一个bean
<bean id=”messageSource” class=”org.springframework.context.support.ResourceBundleMessageSource”>
   <property name=”basename”>
    <value>message</value>
   </property>
</bean>
? 在src目录下建多个properties文件
? 对于非英文的要用native2ascii -encoding gb2312 源 目转化文件相关内容
? 其命名格式是message_语言_国家。
? 页面中的中显示提示信息,键名取键值。
? 当给定国家,系统会自动加载对应的国家的properties信息。
? 通过applictionContext.getMessage(“键名”,”参数”,”区域”)取出相关的信息。

十五、spring中的核心类有那些,各有什么作用?

BeanFactory:产生一个新的实例,可以实现单例模式
BeanWrapper:提供统一的get及set方法
ApplicationContext:提供框架的实现,包括BeanFactory的所有功能

十六、什么是aop,aop的作用是什么?

面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足
除了类(classes)以外,AOP提供了切面。切面对关注点进行模块化,例如横切多个类型和对象的事务管理
Spring的一个关键的组件就是AOP框架,可以自由选择是否使用AOP
提供声明式企业服务,特别是为了替代EJB声明式服务。最重要的服务是声明性事务管理,这个服务建立在Spring的抽象事物管理之上
允许用户实现自定义切面,用AOP来完善OOP的使用
可以把Spring AOP看作是对Spring的一种增强

十七、使用Spring有什么好处?

◆Spring能有效地组织你的中间层对象,无论你是否选择使用了EJB。如果你仅仅使用了Struts或其他的包含了J2EE特有APIs的framework,你会发现Spring关注了遗留下的问题,。

◆Spring能消除在许多工程上对Singleton的过多使用。根据我的经验,这是一个主要的问题,它减少了系统的可测试性和面向对象特性。
◆Spring能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种 一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性关键字或系统属性,为此不得不读Javadoc乃至源编码吗?有了Spring,你可 很简单地看到类的JavaBean属性。倒置控制的使用(在下面讨论)帮助完成这种简化。
◆Spring能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。
◆Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。
◆使用Spring构建的应用程序易于单元测试。
◆Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。
◆Spring帮助你解决许多问题而无需使用EJB。Spring能提供一种EJB的替换物,它们适于许多web应用。例如,Spring能使用AOP提供声明性事务而不通过使用EJB容器,如果你仅仅需要与单个的数据库打交道,甚至不需要JTA实现。
■Spring为数据存取提供了一致的框架,不论是使用JDBC或O/R mapping产品(如Hibernate)。
Spring确实使你能通过最简单可行的解决办法解决你的问题。这些特性是有很大价值的。
总结起来,Spring有如下优点:
◆低侵入式设计,代码污染极低
◆ 独立于各种应用服务器,可以真正实现Write Once,Run Anywhere的承诺
◆Spring的DI机制降低了业务对象替换的复杂性
◆Spring并不完全依赖于Spring,开发者可自由选用Spring框架的部分或全部

十八、什么是Spring, 它有什么特点?

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

◆轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并 且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦 合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不 是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的 业务逻辑与系统级服务(例如审计(auditing)和事务()管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们 并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是 一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生 成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

十九、请介绍一下Spring框架中Bean的生命周期 和作用域

(1)  bean定义
    在配置文件里面用<bean></bean>来进行定义。
  (2)  bean初始化
    有两种方式初始化:
A.在配置文件中通过指定init-method属性来完成
B.实现org.springframwork.beans.factory.InitializingBean接口
  (3)  bean调用
    有三种方式可以得到bean实例,并进行调用
  (4)  bean销毁
    销毁有两种方式
A.使用配置文件指定的destroy-method属性
B.实现org.springframwork.bean.factory.DisposeableBean接口

##作用域
singleton
当一个bean的作用域为singleton, 那么Spring IoC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例。
prototype
Prototype作用域的bean会导致在每次对该bean请求(将其注入到另一个bean中,或者以程序的方式调用容器的getBean()方法)时都会创建一个新的bean实例。根据经验,对所有有状态的bean应该使用prototype作用域,而对无状态的bean则应该使用singleton作用域
request
在一次HTTP请求中,一个bean定义对应一个实例;即每次HTTP请求将会有各自的bean实例, 它们依据某个bean定义创建而成。该作用 域仅在基于web的Spring ApplicationContext情形下有效。
session
在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring
ApplicationContext情形下有效。
global session
在一个全局的HTTP Session中,一个bean定义对应一个实例。典型情况下,仅在使用portlet
context的时候有效。该作用域仅在基于 web的Spring ApplicationContext情形下有效。


二十、AOP里面重要的几个名词概念解释:

切面(Aspect): 一个关注点的模块化,这个关注点可能会横切多个对象。事务管理是J2EE应用中一个关于横切关注点的很好的例子。 在Spring AOP中,切面可以使用通用类(基于模式的风格) 或者在普通类中以 @Aspect 注解(@AspectJ风格)来实现。

连接点(Joinpoint): 在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候。 在Spring AOP中,一个连接点 总是 代表一个方法的执行。 通过声明一个org.aspectj.lang.JoinPoint类型的参数可以使通知(Advice)的主体部分获得连接点信息。

通知(Advice): 在切面的某个特定的连接点(Joinpoint)上执行的动作。通知有各种类型,其中包括“around”、“before”和“after”等通知。 通知的类型将在后面部分进行讨论。许多AOP框架,包括Spring,都是以拦截器做通知模型, 并维护一个以连接点为中心的拦截器链。

切入点(Pointcut): 匹配连接点(Joinpoint)的断言。通知和一个切入点表达式关联,并在满足这个切入点的连接点上运行(例如,当执行某个特定名称的方法时)。 切入点表达式如何和连接点匹配是AOP的核心:Spring缺省使用AspectJ切入点语法。

引入(Introduction): (也被称为内部类型声明(inter-type declaration))。声明额外的方法或者某个类型的字段。 Spring允许引入新的接口(以及一个对应的实现)到任何被代理的对象。 例如,你可以使用一个引入来使bean实现 IsModified 接口,以便简化缓存机制。

目标对象(Target Object): 被一个或者多个切面(aspect)所通知(advise)的对象。也有人把它叫做 被通知(advised) 对象。 既然Spring AOP是通过运行时代理实现的,这个对象永远是一个 被代理(proxied) 对象。

AOP代理(AOP Proxy): AOP框架创建的对象,用来实现切面契约(aspect contract)(包括通知方法执行等功能)。 在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。 注意:Spring 2.0最新引入的基于模式(schema-based)风格和@AspectJ注解风格的切面声明,对于使用这些风格的用户来说,代理的创建是透明的。

织入(Weaving): 把切面(aspect)连接到其它的应用程序类型或者对象上,并创建一个被通知(advised)的对象。 这些可以在编译时(例如使用AspectJ编译器),类加载时和运行时完成。 Spring和其他纯Java AOP框架一样,在运行时完成织入。

通知的类型:

前置通知(Before advice): 在某连接点(join point)之前执行的通知,但这个通知不能阻止连接点前的执行(除非它抛出一个异常)。

返回后通知(After returning advice): 在某连接点(join point)正常完成后执行的通知:例如,一个方法没有抛出任何异常,正常返回。

抛出异常后通知(After throwing advice): 在方法抛出异常退出时执行的通知。

后通知(After (finally) advice): 当某连接点退出的时候执行的通知(不论是正常返回还是异常退出)。

环绕通知(Around Advice): 包围一个连接点(join point)的通知,如方法调用。这是最强大的一种通知类型。 环绕通知可以在方法调用前后完成自定义的行为。它也会选择是否继续执行连接点或直接返回它们自己的返回值或抛出异常来结束执行。

环绕通知是最常用的一种通知类型。大部分基于拦截的AOP框架,例如Nanning和JBoss4,都只提供环绕通知。

切入点(pointcut)和连接点(join point)匹配的概念是AOP的关键,这使得AOP不同于其它仅仅提供拦截功能的旧技术。 切入点使得定位通知(advice)可独立于OO层次。 例如,一个提供声明式事务管理的around通知可以被应用到一组横跨多个对象中的方法上(例如服务层的所有业务操作)。


二十一 spring事务的原理(从架构图回答)
事务管理的方式:编程型和声明型,spring推荐使用后一种方式
声明型事务管理的优势非常明显:代码中无需关于关注事务逻辑,让Spring声明式事务管理负责事务逻辑,声明式事务管理无需与具体的事务逻辑耦合,可以方便地在不同事务逻辑之间切换。


二十二 spring常用的类和接口

一、ApplicationContextAware接口
     当一个类需要获取ApplicationContext实例时,可以让该类实现ApplicationContextAware接口。

二、ApplicationEvent抽象类
     当需要创建自定义事件时,可以新建一个继承自ApplicationEvent抽象类的类。

三、ApplicationListener接口
     当需要监听自定义事件时,可以新建一个实现ApplicationListener接口的类,并将该类配置到Spring容器中。

四、BeanNameAware接口
     当bean需要获取自身在容器中的id/name时,可以实现BeanNameAware接口。

五、InitializingBean接口
      当需要在bean的全部属性设置成功后做些特殊的处理,可以让该bean实现InitializingBean接口。
      效果等同于bean的init-method属性的使用或者@PostContsuct注解的使用。
      三种方式的执行顺序:先注解,然后执行InitializingBean接口中定义的方法,最后执行init-method属性指定的方法。

六、DisposableBean接口
      当需要在bean销毁之前做些特殊的处理,可以让该bean实现DisposableBean接口。
      效果等同于bean的destroy-method属性的使用或者@PreDestory注解的使用。
      三种方式的执行顺序:先注解,然后执行DisposableBean接口中定义的方法,最后执行destroy-method属性指定的方法。

七、BeanPostProcessor接口
     当需要对受管bean进行预处理时,可以新建一个实现BeanPostProcessor接口的类,并将该类配置到Spring容器中。

八、BeanFactoryPostProcessor接口
    当需要对Bean工厂进行预处理时,可以新建一个实现BeanFactoryPostProcessor接口的类,并将该类配置到Spring容器中。

九、ResourceBundleMessageSource类
    提供国际化支持,bean的名字必须为messageSource。此处,必须存在一个名为jdbc的属性文件。

spring中的核心类有那些,各有什么作用?
BeanFactory:产生一个新的实例,可以实现单例模式 创建和管理对象之间的依赖
BeanWrapper:提供统一的get及set方法
ApplicationContext:提供框架的实现,包括BeanFactory的所有功能  国际化(getMessage) 资源管理
分享到:
评论

相关推荐

    Spring经典面试题

    ### Spring经典面试题详解 #### 一、Spring的工作原理 Spring 框架的核心功能之一是作为MVC架构的一部分提供支持。在这个过程中,Spring MVC 的请求处理机制是至关重要的。 1. **请求接收**:所有的HTTP请求首先...

    最新Struts和Hibernate和Spring经典面试题

    Struts、Hibernate 和 Spring 经典面试题 以下是对 Struts、Hibernate 和 Spring 的经典面试题的总结,涵盖了这些框架的工作机制、优点、缓存机制、查询方式、优化方法等知识点。 Hibernate 1. Hibernate 工作...

    2023年StrutsHibernateSpring经典面试题收藏.doc

    2023年StrutsHibernateSpring经典面试题收藏.doc

    Struts,Hibernate,Spring经典面试题

    ### Struts、Hibernate、Spring 经典面试题解析 #### 一、Hibernate 相关问题 **1. 为什么需要 Hibernate?** - **减少代码量:** Hibernate 可以极大地减少与数据库交互时所需的 JDBC 代码量。 - **提供 ORM ...

    Struts、Hibernate、Spring经典面试题收藏

    ### Struts、Hibernate、Spring 经典面试题详解 #### Hibernate 工作原理及为何要用? **原理:** 1. **读取并解析配置文件**:在启动时,Hibernate会读取配置文件(如`hibernate.cfg.xml`),从中获取数据库连接...

    Struts,Hibernate,Spring经典面试题.doc

    Struts、Hibernate、Spring是Java开发中非常重要的三个框架,它们分别在Web应用程序的MVC模式、持久化处理和依赖注入方面发挥着关键作用。以下是对这三个框架的一些核心知识点的详细解释: **Struts框架** Struts是...

    Struts,Hibernate,Spring经典面试题收藏

    Struts,Hibernate,Spring是Java企业级开发中三大核心框架,常被用于构建高性能、解耦的J2EE系统。...这三大框架的经典面试题涵盖了它们的核心概念、工作原理、优化技巧以及实际应用,是评估开发者技能的重要标准。

    Spring常见面试题.

    ### Spring框架核心概念与原理 #### 一、Spring框架简介 Spring框架是一个开源的轻量级企业级应用框架,主要由一系列子项目组成,旨在简化企业级应用开发,提高开发效率和代码质量。Spring框架的核心功能包括依赖...

    spring经典面试题[定义].pdf

    Spring框架是Java开发中不可或缺的一部分,它以其强大的功能和易用性深受开发者喜爱。本文将深入探讨Spring的工作原理、使用目的、SSH整合以及事务管理。 首先,Spring的工作原理主要体现在其核心组件...

    Struts、Hibernate、Spring经典面试题.pdf

    根据提供的文件信息,我们可以提炼出关于Struts、Hibernate和Spring相关的知识点。以下是根据标题、描述和部分内容中提取的知识点: 1. Struts框架的核心组件: - ActionServlet:是Struts框架的控制器,负责接收...

    2022年StrutsHibernateSpring经典面试题收藏.doc

    Struts、Hibernate、Spring是Java Web开发中的三大框架,它们分别负责不同的职责,共同构建了高效、解耦的J2EE应用程序...在面试中,理解并能详细解释这些概念和技术,对于展示你的专业技能和解决问题的能力非常重要。

    Spring的经典面试题

    ### Spring框架概述及核心特性 #### 1. 什么是Spring框架?Spring框架有哪些主要模块? - **Spring框架**是一个开放源代码的企业级Java应用程序框架,它以轻量级容器为核心,提供了一系列强大的功能来简化Java应用...

    Java经典面试题(全)

    例如,"Struts,Hibernate,Spring经典面试题收藏.doc" 包含了这些框架的应用问题,"23种设计模式.doc" 对每个设计模式做了详细解释,而 "struts_hibernate_spring.ppt" 可能以图表和示例的形式展示了三大框架的集成...

    spring mvc 经典面试题

    本次提供的内容是关于Spring MVC的经典面试题,我们将会对这些面试题中所涉及的知识点进行详细地阐述。 首先,我们要了解的是Spring MVC的工作原理。在Spring MVC中,所有请求都会被提交给一个名为...

    Spring和SpringMVC面试问题总结(15个)

    Spring和SpringMVC面试问题总结 1.Spring中AOP的应用场景、Aop原理、好处? 2.Spring中IOC的作用与原理?对象创建的过程。 3.介绍spring框架 4.Spring常见创建对象的注解? 5.Spring中用到的设计模式 6.Spring的优点...

    25个经典的Spring面试问题包含答案

    这篇文档“25个经典的Spring面试问题包含答案”旨在帮助求职者和开发者更好地理解Spring的核心概念和实际应用。以下是对这些问题的详细解读: 1. **什么是Spring框架?** Spring是一个开源的Java平台,它为构建...

    120个Java经典面试题和答案

    以下是一些基于标题和描述中提到的Java经典面试题及对应的知识点详解: 1. **Java基础** - **数据类型**:Java有8种基本数据类型,了解它们的存储大小和范围,以及如何进行类型转换。 - **变量与常量**:理解变量...

    struts+hibernate+spring的经典面试题

    在准备这些面试题时,除了理论知识,实践经验和项目案例同样重要。能够结合实际项目描述这三个框架的使用情况,以及遇到的问题和解决方案,将大大提升你的面试表现。因此,复习时不仅要熟悉每个框架的基本概念和用法...

Global site tag (gtag.js) - Google Analytics