Spring面试题汇总

1.关于spring面试高频面试技术点!

  1. spring的组件springFarmwork即是spring它提供了springmvc,
  2. springIOC容器化技术实现控制反转,
  3. SpringAOP实现面向切面编程
  4. Springtransactional实现对事物的管理

2.谈一下自己对spring的理解!

框架的作用是为我们简化开发,spring是一款轻量型框架,将代码解耦合开发,spring对Java分层管理,提升了代码的可阅读性,spring还对多种框架进行集成,完成对应的一站式服务,
spring提供控制反转功能:即springIOC就是将对象的创建权交给spring管理,我们无需对创建对象,这样可以提升对应效率,节约了创建对象的时间。spring为我们提供了工厂模式,使用beanfactory工厂创建对象,一般我们使用对应的继承接口,applicationContext完成对应的配置文件的读取。
springAOP:是指面向切面编程,面向切面,是spring提供的对事物的服务,而spring提供了两种事务,一种是响应式事务,另外一种是编程式事务,springAOP将响应式事务直接集成到对应的应用程序中。
springtransactional是spring提供的事务:它有两种,一种是响应式事务,另外一种是编程式事务,使用AOP与事务结合,完成对应的事务的管理。

3.简单介绍一下Spring的模块!

spring提供的模块有对应的data层的数据持久化的支持,有对应的ORM,对象关系映射,对应的JDBC完成对应的持久化数据库的支持,比如说Mysql,比如说,Oracle完成对应的数据的持久化的支持。还有对事务的管理,transactions支持对应的持久化层的数据,对wab层的数据支持的模块有web,websocket,servlet完成对应的web层数据的管理,对应的还有aspect完成对应的切面的管理,AOP面向切面完成对应的的管理,spring提供的核心有对应的Cores,Bean,context上下文对象,spel是对应IOC容器化的支持。

  1. JDBC完成对应的持久化数据的支持,比如说,mysql,oracle数据库,完成对数据库的封装
  2. ORM是指对应的对象关系映射,完成对应的框架的使用比如说hibernate使用,以及半自动框架mybatis框架的使用。
  3. transactions完成对应的事务的支持,使用注解或者xml,包括编程式事务,或者响应式事务。
    web层的管理:
  4. web是对应的mvc对应的封装,完成对应的controller的管理。
  5. websocker一般是对应的聊天信息的支持。
  6. servlet是对应的web层,数据的请求与数据的接收,使用对应request,response
    Spring的核心容器:
  7. core是spring的核心代码
  8. bean是spring的对应的是工厂模式的具体实现,beanfactory的实现,与对应的IOC共同完成。
  9. springcontext完成对应的上下文的创建。
  10. spel是对应的IOC的模式是一样的 。
    AOP:是面向切面编程是一种编程思想,他的作用是对事务更好的支持,对对应的声明式事务更好的支持。

4. 请简述一下使用spring的好处!

  1. spring是现在的主流框架,他对其他持久层框架有很好的支持,比如说ORM框架,日志框架都有很好的支持。
  2. 支持对应的DI注入,完成对应的参数传递。
  3. spring是一种轻量型框架,使用起来比较方便
  4. spring有很好的对事务进行支持
  5. 提供了比较好的异常处理机制
  6. 提供了对web的支持springmvc
  7. 使用面向切面思想,将代码分离。

5.spring中都用到了哪些设计模式!

  1. 单例设计模式:分为懒汉式设计模式,饿汉式设计模式,
  2. 代理模式:有对应的静态代理模式动态代理模式,对应的动态代理模式有对应的基于jdk的动态代理模式,基于cglib的动态代理模式,基于jdk的动态代理模式是基于接口实现的,基于cgilb的动态代理模式是对应的cglib的。
  3. 模板设计:对应的有redistmplate,jdbctemplate对模板的设计
  4. 工厂模式:使用beanfactory,创建对应的beanfactory工厂。
  5. 前端控制器:dispathservlet来完成对应的请求的分发。
  6. 提供DI依赖注入,完成对应的数据的applicationcontest的接口实现。

6.请简述对应的springIOC!

springIOC是spring的控制反转功能,spring的IOC容器,通过Bean工厂,完成对对应的实例化。通过依赖注入Di完成对应的实例化。可以通过对应的XML完成对应的配置的读取,通过配置类,完成对应的配置类的注入。
依赖注入是DI完成的是对对应的功能的实现。springIOC是一种控制反转的思想,将对应的对象的创建权交给spring去创建,利用spring的bean工厂模式,创建对应的配置类,完成控制反转的功能实现,

7.可以通过多少种方式完成依赖注入

三种:

  1. 通过接口注入,接口注入一般我们不适用
  2. 通过构造函数注入
  3. 通过对应的setter方法注入

需要注意的是构造方法不会对应的参数覆盖,setter会对对应的set方法覆盖。

8.请简述spring IOC的容器!

springIOC容器有两类:

  1. beanfactory :通过备案工厂,完成对应的数据的实例化
  2. applicationcontext:他是对应的beanfactory的接口的实现,它提供了对应的拓展的方法,完成对应的功能的封装
    他们的区别在于:applicationContext可以配置容器的实例化方式,指定对象的创建周期,完成应的兑现的实时加载,提高效率。
  3. application的实例化方式:
    1. classpathXMLapplication:类加载对象,完成对配置类信息读取。
    2. fileSystemXMLapplication:完成对应的文件的上下文读取。
    3. webXMLapplication完成对应的信息的读取。
      springboot支持的是configactionwebXMLapplication

9.列举对应的IOC的优势:

  1. 程序的最小化代码,提升代码的开发效率。
  2. 可以控制对象的加载策略,是实时加载还是延迟加载。
  3. 易于测试,代码的测试。
  4. 将代码解耦合:

10. spring中有哪些不同类型的事件。

application提供了对应事件的监听功能。
五种对应的事件通知:

  1. 上下文开始事件通知:该通知是调用application时调用的通知,或者是configactionWebXmlApplication时调用的通知调用start方法时。
  2. 上下文更新事件通知:调用application或者configactionWebXmLapplication时更新。
  3. 上下文停止事件通知:容器关闭 或者停止时触发该事件。
  4. 上下文关闭事件通知:当application管理的bean被触发时,关闭的触发事件,所有的bean都将被销毁。
  5. 请求处理事件通知:当一个http请求结束时,一个请求处理事件被触发。

11. spring Bean的配置方式

springbean的配置方式有三种,

  1. 基于xml配置:在xml文件中进行配置
  2. 基于spring注解:需要先开启注解
  3. 基于Java配置类:使用注解@configaction声明配置类,完成对应的配置信息。使用@Bean声明对应的配置信息。

12.springBean的生命周期!

  1. 实例化bean对象,完成对应的对象的初始化。
  2. 使用构造方法赋值到对应的bean的对象中。
  3. 进一步初始化对象,完成对应的方法调用
  4. 服务器关闭销毁对应的bean对象。

13.什么是spring装配!

简单的来说就是spring与bean混合使用,spring的IOC与对应的bean绑定在一起,以及容器如何使用依赖注入,,将对应的bean绑定在一起。实际上DI和spring装配是指一个东西。

14.说一下什么是延迟加载!

一般单例模式spring容器启动,会将对应的对象先创建完成,延迟加载使用对应的lazy-init完成对应的,懒加载,使启动项目时不创建对应的对应的对象,使用时再创键,这就是延迟加载。

15.什么基于注解的配置!

与对应的XML配置不同,基于注解是在对应的JAva类中,添加对应的@configaction声明注解的配置类,使用@Bean扮演对应的的标签。
常用的注解有
@Service在对应的service中使用
@Controller在对应的web曾使用声明
@Respository在持久层使用,声明为持久类
@Component交给spring管理的常用的注解
@Autowired引入对应的与对应的Bean,其作用就是自动装配,默认的类型驱动注入。
@Qualifiler相同的类型的bean使用这个注解消除对应的歧视。

16. 简单说一下对AOP的理解!

spring协助对应的事务,完成对应的和功能实现,AOP是指面向切面编程,aspect是由切点和通知组成,减少业务代码中,混入对应的系统代码,比如说,事务 ,日志信息,权限管理。
aop的实现原理是基于jdk的动态代理,反射共同实现完成。将对应的系统代码抽离出来,使用的动态代理。
在切点中,织入对应的代理功能,比如说对应的事务,权限管理,日志管理。
一个方法的执行或者一个异常的处理。
advice和pointcut
在类中我们可以认为所有的节点是一个jointcut,但是我们不是所有的事务都添加对应的织入advice而pointcut就是提供对应的,给满足条件的pointcut添加对应的advice。

17.什么是advice

advice是对应的织入,通知的意思。
有哪些类型:
@Before:这个是在对应的注解之前执行,并且使用对应的
@After returning这个是在对应的方法执行后执行,并且返回对应的信息。
@@After Throwing 这个是在对应的节点之后执行对应的
@After finally 不管是否遇到一异常都会去执行
@Around在连接点之前之后执行

18.AOP有哪些实现。

静态代理:
动态代理:

  1. 基于JDK的动态代理,基于cglib的动态代理
  2. jdk动态代理,是基于接口实现的,cglib的动态代理是基于方法实现的。

19.列举spring支持的事务类型!

声明式事务:从而事务管理与业务代码分离
编程式事务:使用编程式事务代码的调用回滚,非常简单,但是封装起来相对麻烦。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值