spring是什么
-
轻量级开源的j2ee框架。
-
他是一个容器框架,用来装javabean的
-
中间层框架(万能胶)可以起连接作用,比如将strust和hibernate粘合在一起运用
-
加快开发效率
spring 是一个轻量级的控制反转(IoC)和切面编程(AOP)的容器框架
- 大小与开销来说spring是轻量级的
- 通过控制反转(IoC)的技术达到松耦合的目的
- 提供了切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发
- 包含并管理应用对象(bean)的配置和生命周期,这个意义上是容器
- 将简单的组件配置,组合成为复杂的应用,这个意义上是一个框架
谈谈你对IoC的理解
容器概念、控制反转、依赖注入
ioc容器:实际上就是个map (key, value)
里面存的是各种对象(在xm!里配貴的bean节点、@repository.
@service,@controller. @component)
在项目启动的时候会读取配置文件里面的bean节点,根据全限定类
名使用反射创建对象放到map里、扫描到打上上述注解的类还是通过反射创建对象放到map里。
这个时候map里就有各种对象了,接下来我们在代码里需要用到里面的对象时,再通过D入 (autowired.
resource等注解,xm里bean节点内的ref属性,项目启动的时候会读取xml节点ref厲性根据id注入,也会扫描这
些注解,根据类型或id注入;id就是对象名)
控制反转:
没有引入10C容器之前,对象A依赖于对象B,那么对象A在初始化或者运行到某一点的时候,自己必须主动去创建
对象B或者使用已经创建的对象B。无论是创建还是使用对象B,控制权都在自己手上。
引 C容器之后,对象A与对象B之间失去了直接联系,当对象A运行到需要对象B的时候,10C容器会主动创建
- 个对象B注入到对象A需要的地方。
通过前后的对比,不难看出来:对象A获得依赖对象B的过程,由主动行为变为了被动行为,控制权颠倒过来了,这
就是"控制反转"这个名称的由来•
全部对象的控制权全部上缴给"第三方“"OC容器,所以,1OC容器成了整个系统的关键核心,它起到了一种类似"粘
合剂的作用,把系统中的所有对象粘合在一起发挥作用,如果没有这个粘合剂”,对象与对象之间会彼此失去联
系,这就是有人把IOC容器比喻成•粘合剂”的由来。