面试常问Spring,谈谈你的理解?

Spring是什么?

spring是一个轻量级的java容器框架,用来封装javabean(java对象),中间层框架(粘合剂)起 到一个连接作用,比如说把Struts和hibernate粘合在一起运用,可以让我们的企业开发更快,更加简洁

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

  • 通过控制反转达到松耦合的目的
  • 提供了面向切面编程的支持,允许通过分离应用的业务逻辑与系统服务进行内聚性的开发
  • 包含并管理应用对象(bean)的配置和生命周期,这个意义上是一个容器
  • 将简单的组件配置、组合成为复杂的应用,这个意义上是一个框架

谈谈你对IOC的理解

首先明白三个概率,容器概率、控制反转、依赖注入

容器概念

ioc容器实际上就是一个map(key、value),里面可以存放各种javabean对象,在项目启动的时候会读取配置文件的baen节点,再通过反射创建对象放到map里。

这个时候map里就有各种对象了,接下来我们要用到里面的对象时,通过DI注入(aotuwired、resource等注解)

控制反转

在没有引入IOC之前,对象A依赖对象B,那么对象A在初始化的时候,自己必须主动创建B对象,无论是创建还是使用对象B,控制权都在自己手上。

引入IOC容器之后,对象A和对象B直接失去了联系,当对象A需要对象B的时候,IOC会主动创建对象B注入到对象A需要的地方。

通过以上对比,不难看出:对象A在获得对象B的过程,是由主动变成被动,控制权颠倒了过来,这就是“控制反转”的由来。

依赖注入

控制被反转之后,获得依赖对象的过程由自身管理变为了由ICO主动注入,依赖注入是实现IOC的方法,就是由IOC在运行期间,动态的将某种依赖关系注入到对象中。

谈谈你对AOP的理解

系统由很多不同的组件组成的,一个组件负责一个功能,除了实现自己的业务逻辑以外,还有日志、事务管理和安全这样的核心服务需要融入到业务逻辑中去。这些系统服务经常被称为横切关注点,因为他们跨越系统的多个组件。

AOP: 将程序中的业务逻辑代码(比如:安全、日志、事务等等)封装成一个切面,然后注入到目标对象(具体业务逻辑 )中去,AOP可以对某些对象或者对象中的某些功能进行增强,比如对象中的方法进行增强,可以在执行某个方法之前做一些事情,也可以在方法执行之后做一些事情。

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值