求教:注入的具体实现类是哪一个?
先看主要代码:
|
疑问:实例化B时,会自动注入AInterface、DInterface,但框架是怎么知道具体注入哪个实现类,从哪里体现出来?求教,谢谢!!!
[该贴被hellodidang于2012-07-15 09:59修改过]
[该贴被hellodidang于2012-07-15 10:02修改过]
[该贴被hellodidang于2012-07-15 10:02修改过]
[该贴被hellodidang于2012-07-15 10:03修改过]
先看主要代码:
|
疑问:实例化B时,会自动注入AInterface、DInterface,但框架是怎么知道具体注入哪个实现类,从哪里体现出来?求教,谢谢!!!
[该贴被hellodidang于2012-07-15 09:59修改过]
[该贴被hellodidang于2012-07-15 10:02修改过]
[该贴被hellodidang于2012-07-15 10:02修改过]
[该贴被hellodidang于2012-07-15 10:03修改过]
保存的时候,会在Service前后加多个
|
[该贴被hellodidang于2012-07-15 10:07修改过]
根据接口类型寻找,然后使用JDK的构造器反射java.lang.reflect.Constructor创建对象。
<<<<<谢谢板桥老师的赐教!可能我的问题提的不是很好。
在B.java中有一句:i = (Integer) a.myMethod(i, null);这个a具体是哪个对象,因为实现AInterface的类可能有多个。
如果没有指定候选,就选择第一个发现的,所以同一个接口不能有两个以上实现,如果有,必须指定候选,不过jdon不支持候选,因此只能是一个实现。