java - Spring框架中autowire,by name和by type有什么区别
PHPz
PHPz 2017-04-17 18:00:13
[Java讨论组]

下面代码autowire="byName"意思是通过id="userDao"来查找Bean中的userDao对象是吗?

      若autowire="byType"意思是通过 class="cn.com.bochy.dao.impl.UserDaoImpl"来查找UserDaoImpl下所有的对象。

这样理解对吗??


         
      

这个问题已解决,总结如下:
spring中装配bean的基础知识如下:
1.,bean是spring中最基本的配置单元,通过spring将创建一个对象。id属性定义了bean的名字,同时也作为该bean在spring容器中的引用。

PHPz
PHPz

学习是最好的投资!

全部回复(3)
高洛峰

byName就是通过Bean的id或者name,byType就是按Bean的Class的类型。

PHP中文网

Spring里,autowire="byName"的意思是,如果一个beanname和另一个bean里某一个属性名相同,自动关联。

如下例子,customer是一个bean,她有一个叫address的属性,Spring会在当前容器里找一个叫addressbean并把他们关联起来。没找到,就啥也不做。

<!-- customer has a property name "address" -->
<bean id="customer" class="com.test.common.Customer" autowire="byName" />
    
<bean id="address" class="com.test.common.Address" >
    <property name="fulladdress" value="Block A 888, CA" />
</bean>

customer

package com.test.common;
 
public class Customer 
{
    private Address address;
    //...
}

address

package com.test.common;
 
public class Address 
{
    private String fulladdress;
    //...
}
大家讲道理

建议看 《Spring in Action》 第三章第一节,“自动装配 Bean 属性”

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号