ref:https://www.tutorialspoint.com/spring/spring_autowiring_byname.htm

project:Working Set: Spring>Project:Spring02>的

  entity>Person/User 和ApplicationContext2.xml以及test>Test2

没有使用注释的时候,需要在spring的xml配置文件中手动配置并关联bean.

获取bean需要使用ClassPathXmlApplicationContext类继承自AbstractApplicationContext类中的getBean("bean name")方法.

有时候,为了避免歧义,还要写带有classpath:的完整路径.

bean对应的类中,只需要设置和<bean><property name="propertiesName">中对应的set方法,格式如下:

setPropertiesName(...)

不需要无参和全参构造函数和get方法.

,需要在property中添加对应的属性.

其中如果没有使用别名,需要property中的name attribute和类中的属性名保持一致.

  *还可以通过bean中的autowire attribute来和属性 建立关系.

byName是通过参数名来在配置文件中寻找 和 "所需要的参数" 对应名称的bean,也就是和setPropertiesName()中的PropertiesName同名的bean.

比如:

PC有个CPU cpu属性,以及其他如String videoCard, Integer price;

那么<bean name="PC"如果设置 autowire="byType">

<property name="videoCard" value="GTX 1080">

<property name="price" value="20000">

</bean>

虽然没有配置Cpu类型的cpu属性.

但是如果配置文件中有个

<bean id="cpu" class=".....CPU"

就会寻找配置文件中的该bean.

因为类型是CPU.

*如果autowire是"byName"

就会寻找到和PC中的属性[CPU cpu]中的set方法的名称

因为setCpu和cpu对应.

  为了不混淆.

将PC中的CPU属性名设置成 cpu_ClassProp

将其set方法设置成setCpu_Set()

set方法的形参是cpu_Param

将bean的id设置成cpu_Bean

然后,byName对比的是

cpu_Bean和cpu_Set()是否相等.

如果找到setXYZ()和id为xYZ的bean,则会匹配.

将其作为属性注入到PC中,

等效于

<property name="cpu_Set" ref="cpu_Bean >

[Spring] 关联类和bean | autowire=byName|byType的更多相关文章

  1. spring 自动装配 default-autowire=&quot;byName/byType&quot;

    <PRE class=html name="code">spring 自动装配 default-autowire="byName/byType"   ...

  2. Spring之设置Bean值

    Java实例的属性值可以有很多种数据类型.基本类型值.字符串类型.java实例甚至其他的Bean实例.java集合.数组等.所以Spring允许通过如下几个元素为Bean实例的属性指定值: value ...

  3. SSM-Spring-06:Spring的自动注入autowire的byName和byType

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- di的注入上次讲了一些,这次主要阐述域属性的自动注入 先讲byType方式 看名字就知道是根据类型进行自动注入 ...

  4. spring bean autowire自动装配

    转自:http://blog.csdn.net/xiao_jun_0820/article/details/7233139 autowire="byName"会自动装配属性与Bea ...

  5. Spring -08 -自动注入 -byName/byType/constructor -全局使用default-autowire=” byName"

    1.在Spring 配置文件中对象名和ref=”id”id 名相同使用自动注入,可以不配置<property/>2.两种配置办法 2.1在<bean>中通过 autowire= ...

  6. Spring域属性自动注入byName和byType

    byName 方式 <!--byName约束:bean当中的域属性名必须跟所注入bean的id相同--> <bean id="student" class=&qu ...

  7. Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire

    创建应用对象之间协作关系的行为称为装配(wiring),这也是依赖注入的本质. Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,而开发者需要告诉Spring需要创建哪些 ...

  8. Spring系列之bean的使用

    一.Bean的定义 <bean id="userDao" class="com.dev.spring.simple.MemoryUserDao"/> ...

  9. spring的自动装配(default-autowire="byName")

    自动装配,官方给出的定义是这样:Spring IoC容器可以自动装配(autowire)相互协作bean之间的关联关系.因此,如果可能的话,可以自 动让Spring通过检查BeanFactory中的内 ...

随机推荐

  1. 牛客网数据库SQL实战(6-10)

    6.查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序CREATE TABLE `employees` (`emp_no` int(11) NOT NULL ...

  2. dubbo接口FindMemberInfoTest思路整合

    package com.yzb.user_center; /** * @Created by IntelliJ IDEA. * @Author tk * @Date 2018/7/31 * @Time ...

  3. easyui中datagrid常见功能

    1.数据加载,需要拼接成标准json格式{}.如果是jsonarray格式[{},{}],无法识别. 2.后端将list拼接成datagrid能识别的json格式,需要首先new JSONObject ...

  4. topcoder srm 330 div1

    problem1 link 直接模拟. import java.util.*; import java.math.*; import static java.lang.Math.*; public c ...

  5. Web开发中B/S架构和C/S架构的区别

    在web开发中有两种基本架构,即C/S架构和B/S架构那么这两种架构有什么区别呢?那么就一起来看看吧. C/S架构图: B/S架构图: C/S架构是 浏览/服务器端的交互,是早期的一种分布式架构,在该 ...

  6. Delphi程序的主题(Theme)设置

    本文参考了 http://superlevin.ifengyuan.tw/delphi-change-vcl-style/ 在项目的工程文件中勾选主题,设置缺省主题为Windows 部分代码如下: u ...

  7. linux下关于mysql的命令的用法

    所有关于mysql的命令都在/usr/bin/中, 使用 /usr/bin | grep 'mysql'可以列出这些mysql命令 导出数据库, 可以直接在 命令行中, 使用 mysqldump -u ...

  8. 102. Binary Tree Level Order Traversal 广度优先遍历

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  9. Jupyter Notebook主题字体设置及自动代码补全

    Jupyter Notebook用久了就离不开了,然而自带的主题真的不忍直视.为了视力着想,为了自己看起来舒服,于是折腾了一番..在github上发现了一个jupyter-themes工具,可以通过p ...

  10. 接口Interface的四种含义

    摘自<需求分析与系统设计(第3版)>第七章Q5 1. GUI——显示信息的计算机屏幕(注:其他终端) 2. API——是一套软件程序和开发工具,为应用程序提供函数调用,使程序可以访问一些级 ...