Spring中有个自动装配的功能
可以按照名称和类型来装配
请问 它是怎么实现的呢?
其实就是如何找到一个接口的实现类呢?
就好像eclipse里的Ctrl+T的功能一样
又谁读过源码的来讲一讲啊
多谢
可以按照名称和类型来装配
请问 它是怎么实现的呢?
其实就是如何找到一个接口的实现类呢?
就好像eclipse里的Ctrl+T的功能一样
又谁读过源码的来讲一讲啊
多谢
解决方案 »
- 我以为的java虚函数(或者说接口),欢迎大家讨论,指正!
- JSP页面取得List 然后又要传回到action如何解决?急急急...
- Java中,想实现一种自定义异常,请高手指教。
- weblogic console部署war包 web-inf/classes下的文件丢失?
- 关于java打印 invalid flavor报错问题。
- 请问java如何调节摄像头的属性,例如亮度对比度等等。
- 使用hibernate如何能够执行一个sql文件里面所有的sql语句?
- hibernate 表继承删除和查询问题
- JSP与Tomcat5.0的配置问题,请帮帮忙!!
- 简单的送分问题
- 初次接触DWR,查看资料时,遇到个简单语法问题
- 实现播放器
default-autowire="byType"是根据类型自动装配
如何找到一个接口的实现类?
在配置文件中声明一个接口实现类,程序中的接口的变量名和配置文件中的接口实现类的id相同,并提供get/set方法,就可以找到了
这种按照类型自动装配的时候
即使接口的变量名和实现类的beanId不同也可以找到
要不然怎么叫做按类型装配呢
我就向直到它怎么实现的还有eclipse的那个功能
它怎么直到这个接口有多少个实现类的呢
也就是说如果我的属性名 和配置文件里的beanId不一样
那么按类型装配就会有问题是吗?其实我就是想直到这样一件事
比如我有个接口ServiceManager
我如何在代码里找到这个接口的所有实现类呢?
private TestService testService;其中testService是要Spring来注入的,TestService是一个接口
这个接口有一个实现类,配置如下
<bean id="testBeanService"
class="com.huawei.mdmc.ecospace.temp.TServiceImpl">
</bean>
这里beanId,属性名和实现类的名字,三者没有任何规律
Spring依然能够正确注入但是如果给TestService 再增加一个实现类TServiceImpl2
配置如下
<bean id="testBean2Service"
class="com.huawei.mdmc.ecospace.temp.TServiceImpl2">
</bean>
这样就会抛异常:expected single matching bean but found 2: [testBeanService, testBean2Service]所以我感觉,Spring是不是遍历了所有的bean
判断每个bean instanceof TestService 如果是就放到一个list里
最后判断这个list的大小 如果等于1 那么就给注入
不等于1就抛异常(要么没有 要么不止一个)不知道猜得对不对 请直到的给个解答
3q