Spring的面试题

Spring面试题一

目录
一、Spring工作原理
二、为什么要用Spring
三、请你谈谈SSH整合
四、介绍一下Spring的事务管理
五、什么是依赖注入,依赖注入的作用是什么?
六、什么是AOP,AOP的作用是什么?
七、Spring中的BeanFactory与ApplicationContext的作用有哪些?
八、连接池
九、跨库事务

一、Spring MVC工作原理
1. 客户端请求提交到DispatcherServlet
2. 由DispatcherServlet控制器查询一个或多个HandlerMapping,找到处理请求的Controller
3. DispatcherServlet将请求提交到Controller
4. Controller调用业务逻辑处理后,返回ModelAndView
5. DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图
6. 视图负责将结果显示到客户端

二、为什么要用Spring
1、Spring能很好的与各大框架进行集成
2、创建对象时,如果我们不用spring需要用工厂模式来创建,这个spring相当于工厂模式已经帮我们做了创建对象的功能(IOC、依赖注入)。
3、在用Hibernate的时候,如果不用spring每次都要写事务的提交代码,有了spring可以通过AOP帮助我们管理事务 
4、面向切面编程(AOP)在要记录日志的时候添加一条记录后需要在数据里同时添加一条添加成功了或失败的记录,那么就可以用Spring的Aop来处理,虽然不用Aop也能做但是不用Spring的Aop就会写很多重复的代码。

三、请你谈谈SSH整合
SSH:Struts(表示层)+Hibernate(持久层)+Spring(业务层)

a、Struts
Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。
b、Hibernate
Hibernate是一个持久层框架,它只负责与关系数据库的操作。
c、Spring
Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。

四、介绍一下Spring的事务管理
事务就是对一系列的数据库操作(比如插入多条数据)进行统一的提交或回滚操作,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之前的所有操作。这样可以防止出现脏数据,防止数据库数据出现问题。

开发中为了避免这种情况一般都会进行事务管理。Spring中也有自己的事务管理机制,一般是使用TransactionMananger进行管理,可以通过Spring的注入来完成此功能。

五、什么是依赖注入,依赖注入的作用是什么?
IOC是一种思想,它能指导我们如何设计出松耦合、更优良的程序。传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试;有了IOC容器后,把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,所以对象与对象之间是松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。

依赖注入的作用:减少类间耦合度,避免用new来创建对象

六、什么是AOP,AOP的作用是什么?
AOP,面向切面编程,就是把可重用的功能提取出来,然后将这些通用功能在合适的时候织入到应用程序中,比如事务管理、权限控制、日志记录、性能统计等。

AOP的作用
AOP并没有帮助我们解决任何新的问题,它只是提供了一种更好的办法,能够用更少的工作量来解决现有的一些问题,使得系统更加健壮,可维护性更好。

七、Spring中的BeanFactory与ApplicationContext的作用有哪些?
1、BeanFactory负责读取bean的配置文件,管理bean的加载、实例化,维护bean之间的依赖关系,负责bean的生命周期。
2、ApplicationContext除了提供上述BeanFactory所能提供的功能之外,还提供了更完整的框架功能:
a. 国际化支持
b. 资源访问
c. 事件传递

八、连接池
c3p0、dbcp

九、跨库事务
Atomikos、jotm

时间: 2024-10-05 05:50:20

Spring的面试题的相关文章

一道78%的Java程序员搞不清的Spring bean面试题

熟悉Spring开发的朋友都知道Spring提供了5种scope分别是singleton.prototype.request.session.global session.如下图是官方文档上的截图,感兴趣的朋友可以进去看看这五种分别有什么不同.今天要介绍的是这五种中的前两种,也是Spring最初提供的bean scope singleton 和 prototype.Spring官方文档介绍如下图: 单例bean与原型bean的区别 如果一个bean被声明为单例的时候,在处理多次请求的时候在Spr

20 道 Spring Boot 面试题

转自:微信公众号:Java技术栈(id: javastack) 面试了一些人,简历上都说自己熟悉 Spring Boot, 或者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望. 下面,我给大家总结下有哪些 Spring Boot 的面试题,这是我经常拿来问面试者的,希望对你有帮助. 1.什么是 Spring Boot? Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化

测试一下25道Spring经典面试题你会几道?循环依赖面试详解

前言 先看看什么是循环依赖当一个ClassA依赖于ClassB,然后ClassB又反过来依赖ClassA,这就形成了一个循环依赖:ClassA -> ClassB -> ClassA循环依赖-->2个或以上bean 互相持有对方,最终形成闭环.Spring中循环依赖的场景:1.构造器的循环依赖.(spring也无能为力)2.setter循环依赖:field属性的循环依赖[setter方式 单例,默认方式-->通过递归方法找出当前Bean所依赖的Bean,然后提前缓存[会放入Cach

spring常见面试题之(一)

1.什么是Spring beans? Spring beans 是那些形成Spring应用的主干的java对象.它们被Spring IOC容器初始化,装配,和管理.这些beans通过容器中配置的元数据创建.比如,以XML文件中<bean/> 的形式定义. Spring 框架定义的beans都是单件beans.在bean tag中有个属性"singleton",如果它被赋为TRUE,bean 就是单件,否则就是一个 prototype bean.默认是TRUE,所以所有在Sp

阿里的Spring框架面试题到底有多难?

代理模式相关问题 为什么需要代理模式? 讲讲静态代理模式的优点及其瓶颈? 对Java 接口代理模式的实现原理的理解? 如何使用 Java 反射实现动态代理? Java 接口代理模式的指定增强? 谈谈对Cglib 类增强动态代理的实现? Spring AOP相关问题 什么是 AOP? point cut,advice,Join point是什么? join point 和 point cut 的区别? 怎么理解面向切面编程的切面? 谈谈对SpringAOP Weaving(织入)的理解? 谈谈Sp

Spring Boot 面试题总结

1.什么是spring boot 答案:springboot是用来简化spring应用的初始搭建和开发过程,使用特定的配置文件来配置,例如application.properties,简化来maven配置,使项目从繁到简. 2.springboot与spring的区别. 答案:1)Java在集成spring框架时需要配置大量的配置文件,开发效率低. 2)spring boot优于spring,配置简单,而且可以集成spring框架的项目. 3.sprinboot的核心功能和使用优点. 核心功能:

Spring MVC 面试题

什么是springMVC?作用? springMVC是一种web层mvc框架,用于替代servlet(处理|响应请求,获取表单参数,表单校验等). 为什么要用springMVC? 基本上,框架的作用就是用来简化编程的,相对于servlet来说,获取表单参数,响应请求等变得更简单了. 说出spring mvc底层执行流程(工作原理) 说说spring mvc中常用注解有哪些,分别什么作用? @Controller 标识这个类是一个控制器 @RequestMapping 给控制器方法绑定一个uri

Spring常见面试题

1. 什么是SpringIOCSpringIOC指的是控制反转,应用程序对象的创建,配置,维护,依赖交给了SpringIOC容器统一进行管理,从而实现松耦合. 2. 说一下SpringIOC的实现原理使用反射机制+xml技术 3. 什么是SpringAOPAOP,即面向切面编程.作为OOP的一种补充技术,传统的OOP是自伤而下的逻辑开发.而AOP是利用一种横切技术,将一个项目一刀切下来,剖开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为 “Aspect” , 即切

49个spring常见面试题

一.一般问题 1. 不同版本的 Spring Framework 有哪些主要功能? 2. 什么是 Spring Framework? Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度. 它是轻量级.松散耦合的. 它具有分层体系结构,允许用户选择组件,同时还为 J2EE 应用程序开发提供了一个有凝聚力的框架. 它可以集成其他框架,如 Structs.Hibernate.EJB 等,所以又称为框架的框架.  3. 列举 Spring Framework 的优点. 由于 Spring F