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不能解决问题的情况在再慎重使用。