如何实例化模块_Spring框架之核心概念 #4 Spring IoC实例展示

0290ddf8b303e8c7d38ba746d6845c5c.png
《 Spring by Example》中文版:
原书作者: David Winterfeldt
译者:牛岱

4. Spring IoC实例展示
所以我们如何在IoC容器中配置我们的之前的投票箱程序呢?
我们的代码保持原样,无需改变。我们需要做的只是在xml格式的配置文件中告知Spring recorder bean 由 LocalVoteRecorder 进行实现。如下:

  <bean id="recorder"       class="com.springindepth.LocalVoteRecorder" />  


然后我们只需通过setter注入的方法将 recorder 映射到 VotingBooth 中。


【译者云:在配置文件中声明了property之后,spring框架会通过你votingBooth中的setter方法, 创造一个voteRecorder实例,然后把这个recorder注入到votingBooth中。

<bean id="votingBooth"       class="com.springindepth.VotingBooth">  
   <property name="voteRecorder" ref="recorder"/> 
</bean>    


神奇的Spring框架会为你处理类的实例化,所以你的应用代码无需在意任何类的实例化。现在在配置文件和Spring框架的帮助下,通过 依赖注入,我们最终成功地,彻底地去除了高层模块对底层模块的内部依赖,完全实现了代码之间的解耦,实现了真正的依赖反转!

【译者云:为什么叫做“反转”呢?在引入依赖注入思想前,我们的代码的高层模块内部包含有低层模块,也就是说我们高层模块从内部 依赖于低层模块,然而现在高层模块的内部并没有任何关于低层模块的实现和实例化,销毁,反而是低层模块需要根据配置文件决定它要 被注入到哪里,也就是所谓的“依赖反转”】。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值