声明:小弟最近正在学习spring下面内容是自己的一些理解,如果有不对的地方请及时留言告知,以免误导了后面的spring学习者,谢谢大家配合。
什么是spring:
Spring是轻量级开源框架,以IOC(控制反转)和AOP(面向切面编程)为内核。
Spring的出现代替了ejb的臃肿、低效、脱离现实
是什么:
简单点明:
IOC控制反转:从容器的角度来说的,就是创建实例的工作交给容器管理。
DI依赖注入:从需要实例化对象的角度来说是创建对象实例时,为这个对象注入 属性值或其它对象实例。
它们是spring核心思想的不同方面的描述分别站在了容器和对象的角度来说明同 一件事。
有什么用:
Spring的IOC容器降低了业务逻辑对象替换的复杂性,提高了组件之间的解耦。
依赖注入是一种优秀的解耦方式
如何用:
设值注入:
设值注入是指IOC容器使用成员变量的setter方法来注入被依赖的对象。,这 种方式被大量使用。
构造注入:
通过构造方法来给对象注入值
两种注入方式的对比:
设值注入的优点:
1.在某些成员变量可选的情况下,多参数的构造器显得笨重
2.对于复杂的依赖关系,如果采用构造注入,会导致构造器过于臃肿,难以阅读
3.与传统的javabean写法更相似,程序开发人员更容易理解。,通过setter方式设定依 赖关系显得更加直接自然。
构造注入的优点:
1.构造注入可以在构造器中决定依赖关系的注入顺序,优先依赖的优先注入。
2.对于依赖关系无需变化的bean,构造器注入更有用处。因为没有setter方法,所有 的依赖关系全部在构造器内设定
3.依赖关系只能在构造器中设定,则只有组件的创建者才能改变组价的依赖关系。对组件的调用而言,组件内部的依赖关系更加透明,更符合高内聚的原则
建议采用设值注入为主,构造注入为辅的注入策略。对依赖关系无需变化的注入,尽量采用构造注入,而其他依赖关系的注入,则考虑采用设值注入