spring实战之autowire="byType"

通常我们用spring的时候注入的属性都是指定的类实例或者List或Array,对于这一类的应用通常我们都是使用spring默认的根据bean的id或者name来在容器里查找,但是有些时候在一些特殊应用中对于一个bean的某个属性并不是固定的,此时就可以用到spring的另外一种注入方式就是autowire="byType"。如下例子:

一个接口类和几个实现类MyIdProvider.java

 

 

 

MyIdProviderManager.java一个管理类,其中定义了一些对MyIdProvider的引用

 

 

 

Test.java一个测试类

 

 

spring.xml

 

 

运行Test类,得到如下输出

 

hello

provider1_1290559324155

provider2_1290559324155

provider3_1290559324155

 

 

对于byType注入个人认为还是应该少用,因为他确实提供了足够的灵活性,但是确牺牲了类依赖的清晰性,最后有可能导致出现问题了很难找到,因此还是应该谨慎使用,只有在byName不能解决问题的情况在再慎重使用。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2010-11-24 08:54  程序员天下  阅读(600)  评论(0编辑  收藏  举报