spring面试常见问题总结(上)

1 篇文章 0 订阅

在面试中,经常会问到spring相关的问题,bean的作用域及生命周期,AOP,IOC等一系列问题,平常开发可能经常用到,今天,总结了一下spring的主要知识点及面试经常遇到的问题。

1:什么是spring?

2:spring中bean的作用域?

3:spring中bean的生命周期?

4:bean的注入方式有哪些?

5:bean是线程安全的吗?为什么?

6:谈谈对AOP的理解?

7:谈谈对IOC的理解?

1:什么是spring?

       spring是轻量级的应用框架,方便我们的开发,可以方便的集成其他框架,方便拓展,事物管理更加的方便,方便解耦。里面主要包含了IOC和AOP,IOC主要用来管理bean,未用spring框架时,需要使用对象的时候,需要手动去new,有了spring框架之后,交给IOC容器管理。AOP主要是面向切面编程,比如开发中需要经常记录日志,很多方法中都需要去写,这样与业务代码冗余到一起,不方便开发,使用AOP面向切面编程,就是将公共的方法提取出来,减少代码冗余。

spring中主要包含了以下六个模块:

      spring  core:核心类库,提供IOC服务;

      spring  aop:AOP服务,面向切面编程;

      spring  context:提供框架式的bean访问方式,以及企业功能(JNDI,定时任务等);

      spring  dao:对JDBC的抽象,简化了数据访问异常的处理;

      spring  orm:对现有orm框架的支持;

      spring web:提供了基本的面向web的综合特性;

      spring  mvc:提供面向对象web应用的model-view-controller实现

      2:spring中bean的作用域?

       spring中bean的作用域有五种:分别是singleton、prototype、request、session、global-session。

       singleton:默认是单例的,只有一个bean实例,通过scope属性设置其他作用域;

       prototype:多例的,每次容器调用都会产生一个新的bean实例;

       request:每一次http请求都会产生一个bean实例;

       session:每个session中,都会有一个bean实例;

       global-session:全局的http  session。

      3:spring中bean的生命周期?

      谈到了bean的生命周期,先来说下servlet的生命周期,servlet实例化 - 初始化init - 接口调用处理service - 销毁destory。

      实例化bean  - 设置对象属性  - 处理Aware接口 - 创建成功调用  - 销毁destory。

      4:bean的注入方式有哪些?

      1)setter方法注入;

      2)构造器注入;

      3)注解注入。

     5:bean是线程安全的吗?为什么?

      spring中的bean默认是单例的,默认的是单例的bean,spring中对bean线程安全没有做特殊的处理,所以说,spring中不能保证bean是线程安全的。

     6:谈谈对AOP的理解?

     spring中的AOP即面向切面变成,面向切面编程是一种思想,即我们平常在开发中,比如记录日志,事物管理等,可能在很多地方都要使用,比如在A方法中记录日志,写了几行代码,可能B方法中,也要使用,这样就造成了代码冗余,重复代码太多,面向切面编程的思想,就是将这些方法提取出来,这样使用起来很方便,在需要的使用该方法的地方即可方便实现,如果有问题,也方便改。不至于每次出错改很多地方,提高了代码的复用性。

7:谈谈对IOC的理解?

      IOC,就是我们经常所说的控制反转,DI,就是依赖注入,这两个是对同一个事物从不同角度的解释。没有使用spring框架的时候,我们需要使用一个对象,经常需要自己去手动new,需要自己取管理对象。使用spring的IOC容器之后,对象交给spring的IOC容器管理,bean的创建,初始化,结束,依赖注入等一系列,全部由IOC容器帮我们完成,我们在需要使用的时候,直接调用就行了。

       spring在工作面试中经常用到,今天总结了部分内容。后面更新其他的内容。知识就是要不断的学习,不断的复习,这样的才能记忆的更加深刻。加油,美好的风景一直在路上。

     

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值