spring之依赖注入之理解
来源:互联网 发布:linux 禁用显卡 驱动 编辑:程序博客网 时间:2024/06/05 08:33
为什么会存在依赖注入:任何一个有实际意义的应用都会由两个或者更多的类组成,这些类互相之间进行协作来完成特定的业务逻辑。因此存在每个对象负管理与自己相互协作的对象的引用。同时也就会存在个高度耦合的代码。
耦合具有两面性:一方面,紧密耦合的代码难以测试、难以复用、难以理解,兵并且典型地表现出“打地鼠”的bug
另一方面:一定程度的耦合性又是必须的,完全没有耦合的代码什么也做不了。为了完成实际的意义的功能,不同的类必须以适当的方式进行交互。总而言之,耦合是必须的,一次必须被小心管理
依赖注入(dependency infection):通过DI对象的依赖关系将由系统中负责协调个对象的 第三方组件再创建对象的时候进行设定。对象无需自行 创建或管理它们的依赖关系。依赖关系将被自动注入到需要他们的对象当中去。
采用依赖注入最大的好处就是 松耦合,将类之间的耦合行降低了。 简单的说: DI能够让相互协作的组件保持松耦合。
在我们一般使用的类中,一般传入的是接口,例如 类A 中 使用 B类,我们我们传入B类的实现类C(接口),有可能 D类也实现了C类。。这里A类 并没有 与C(接口)的实现发生耦合。。这就是 di带来最大的收益--松耦合。
如果一个对象只通过接口(而不是具体的实现)来表明依赖关系,那么这种依赖就能够在对象本身毫不知情的情况下,用不同的具体实现进行替换。
那么问题来了:如果一个接口被多个类实现呢, 怎么把特定的C(接口)实现类传给它呢?
这种创建应用组件之间协作的行为通常称为装配。。spring有多种装配bean的方式,采用的是很常见xml方式
通过spring提供的应用上下文装载bean的定义并把他们组装起来。Spring应用上下文全权负责对象的创建和组装。Spring自带了多种应用上下文的实现,它们之间主要的区别仅仅在于如何加载配置。
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("Meta-INFO/spring/kinghts.xml");
- spring之依赖注入之理解
- spring之依赖注入
- Spring之依赖注入
- spring 之依赖注入
- spring IOC之依赖注入
- spring 之 ioc(依赖注入)
- Spring学习之依赖注入
- SPRING之注入依赖种类
- Spring-依赖注入之set
- Spring 之依赖注入DI
- spring学习之注入依赖
- 初窥Spring之依赖注入
- Spring学习之依赖注入
- spring学习之---依赖注入
- Spring依赖注入之对象注入
- Spring-理解依赖注入
- Spring DI(依赖注入)-之SETTER方法
- spring依赖注入之手工装配
- Java中的字符串连接符(+)
- 字段串日期进行比较
- 【MapReduce Java】简单的平均距离计算
- Tomcat7用户配置
- 表单无法提交设为disabled的input
- spring之依赖注入之理解
- 请写一段 PHP 代码 ,确保多个进程同时写入同一个文件成功
- Sparse Graph HDU
- 一些最长的东西(dp+后缀数组)
- AspectJ使用示例
- react实现点击按钮添加一项(开始显示一项默认的) 点击每项按钮添加对应的小项
- 机器学习
- Linux命令基础11-more命令
- STL容器之string