spring 自动装配是怎么实现的 Spring中有个自动装配的功能可以按照名称和类型来装配请问 它是怎么实现的呢?其实就是如何找到一个接口的实现类呢?就好像eclipse里的Ctrl+T的功能一样又谁读过源码的来讲一讲啊多谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是不是说的,spring容器自动注入?spring的注入,应用的是反射原理. 在beans里添加default-autowire="byName"是根据名字自动装配default-autowire="byType"是根据类型自动装配如何找到一个接口的实现类?在配置文件中声明一个接口实现类,程序中的接口的变量名和配置文件中的接口实现类的id相同,并提供get/set方法,就可以找到了 default-autowire="byType"这种按照类型自动装配的时候即使接口的变量名和实现类的beanId不同也可以找到要不然怎么叫做按类型装配呢我就向直到它怎么实现的还有eclipse的那个功能它怎么直到这个接口有多少个实现类的呢 通过名字匹配查找,反射生成啊。提倡使用:根据类型default-autowire="byType"的方式 楼上能说的具体点吗也就是说如果我的属性名 和配置文件里的beanId不一样那么按类型装配就会有问题是吗?其实我就是想直到这样一件事比如我有个接口ServiceManager我如何在代码里找到这个接口的所有实现类呢? 刚做了个试验这是我一个需要注入的类 @Autowired 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 有人喜欢用struts1/2提供的html标签么??????????????????????????????????????????????????? 一个注册的实现问题~~~ spring 整合 hessian问题 我都要崩溃了!Unbutu下的mysql启动不了 请教高手,笔记本配置方面的。先谢谢,再看问题。 求jboss-4.0.5.GA.zip Hibernate 二级缓存 初学,两个问题关于WebServices tomcat 连接池问题 spring集成框架为啥锁表 初次接触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