[Spring] 关联类和bean | autowire=byName|byType
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的更多相关文章
- spring 自动装配 default-autowire="byName/byType"
<PRE class=html name="code">spring 自动装配 default-autowire="byName/byType" ...
- Spring之设置Bean值
Java实例的属性值可以有很多种数据类型.基本类型值.字符串类型.java实例甚至其他的Bean实例.java集合.数组等.所以Spring允许通过如下几个元素为Bean实例的属性指定值: value ...
- SSM-Spring-06:Spring的自动注入autowire的byName和byType
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- di的注入上次讲了一些,这次主要阐述域属性的自动注入 先讲byType方式 看名字就知道是根据类型进行自动注入 ...
- spring bean autowire自动装配
转自:http://blog.csdn.net/xiao_jun_0820/article/details/7233139 autowire="byName"会自动装配属性与Bea ...
- Spring -08 -自动注入 -byName/byType/constructor -全局使用default-autowire=” byName"
1.在Spring 配置文件中对象名和ref=”id”id 名相同使用自动注入,可以不配置<property/>2.两种配置办法 2.1在<bean>中通过 autowire= ...
- Spring域属性自动注入byName和byType
byName 方式 <!--byName约束:bean当中的域属性名必须跟所注入bean的id相同--> <bean id="student" class=&qu ...
- Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire
创建应用对象之间协作关系的行为称为装配(wiring),这也是依赖注入的本质. Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,而开发者需要告诉Spring需要创建哪些 ...
- Spring系列之bean的使用
一.Bean的定义 <bean id="userDao" class="com.dev.spring.simple.MemoryUserDao"/> ...
- spring的自动装配(default-autowire="byName")
自动装配,官方给出的定义是这样:Spring IoC容器可以自动装配(autowire)相互协作bean之间的关联关系.因此,如果可能的话,可以自 动让Spring通过检查BeanFactory中的内 ...
随机推荐
- 【4OpenCV】OpenCV和RTSP的综合研究
一.RTSP是什么?用来干什么? RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和 ...
- jsxyhelu的GitHub使用方法
如果只是使用Clone不能称得上是完全使用了GitHub,必须完成PullRequest,而且最好是对大型.带自动构建项目进行PR(比如OpenCV),这样才叫完全掌握GitHub的使用方法,这里分享 ...
- 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器
一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...
- CIL锁,GIL与线程池的区别,进程池和线程池,同步与异步
一.GIL锁 什么是GIL? 全局解释器锁,是加在解释器上的互斥锁 GC是python自带的内存管理机制,GC的工作原理:python中的内存管理使用的是应用计数,每个数会被加上一个整型的计数器,表示 ...
- spring启动后立即执行方法
1.方法所属的类继承InitializingBean接口. 2.重写afterPropertiesSet()方法. afterPropertiesSet方法会在bean被初始化时执行. 当bean的作 ...
- Android系统分区理解及分区目录细解【转】
本文转载自:https://blog.csdn.net/u010001503/article/details/51853822 Android 通常有以下分区: System分区: 就是我们刷ROM的 ...
- Windows操作系统下安装Ubuntu虚拟机
认识VMware虚拟机 VMware(虚拟机)是指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统,它能在Windows系统上虚拟出多个计算机,每个虚拟计算机可以独立运行 ...
- Oracle面试相关
存储过程: https://www.cnblogs.com/taiguyiba/p/7809310.html https://www.cnblogs.com/lideng/p/3427822.html ...
- Shell中的IFS
一.IFS 介绍 Shell 脚本中有个变量叫 IFS(Internal Field Seprator) ,内部域分隔符.完整定义是The shell uses the value stored in ...
- 安装 Python-Client
有多种安装Python-Client的方法: 第一种 Install from PyPi, as 'Appium-Python-Client'. >pip install Appium-Pyth ...