Spring学习笔记 关于Bean属性的初始化
来源:互联网 发布:皇家软件北京赛车 编辑:程序博客网 时间:2024/04/29 15:44
依赖注入,可以使Bean中的属性通过Spring进行配置,从HelloWorld中可以看到,由Spring的XML配置文件决定了对象被创建时它的属性是如何被初始化的。Spring配置文件中定义Bean同时就定义了它的属性的值或引用的对象,HelloWorld中是通过Bean中的Setter方法实现的。算起来Spring中初始化类属性值有两种方法,第一种,使用Bean中的Setter方法,第二种使用类的构造方法进行初始化,Spring在配置文件中进行定义的时候同样可以定义它的构造函数所需的参数。
例如HelloWorld笔记中的MessageLooper类,初始化 numTimes属性值可以使用带有int参数的构造方法进行初始化,也可以通过XML配置文件中Bean的定义使用numTimes的Setter方法进行初始化。如下:
使用Setter初始化属性值在XML中Bean的定义示例:
使用构造函数初始化属性值:
可以注意到MessageLooper的带参构造方法的参数类型为int,上图中Spring会根据参数类型来进行转换。
以上为简单示例,如果构造方法有多个参数值,XML中定义的方法为:
对于有多个参数的构造方法使用index确定构造方法参数与定义中值的对应关系。
假如有一种情况,一个方法有两个构造方法,如下
InjectionMail类中有两个都是带有一个参数的构法方法,其中一个参数为String类型,另外一个参数为int型。对于这种情况如果仍然使用上边示例XML中Bean的构造方法定义(例如:<constructor-arg value=“235”/>),Spring将会无法分清创建对象时应该使用哪个构造方法。这时我们需要对参数类型进行定义,定义参数类型使用type属性,如下
构造方法的参数也有可能是引用变量,例如:
定义引用变量类型参数可以使用ref属性
使用<constructor-arg value=“×××” /> 定义的参数值value属性的值可以根据构造方法中定义的参数类型进行转换。以下为转换示例:
上述配置中部分参数定义的其他可选方法:
一般来说为了灵活性扩展性推荐使用setter方法对Bean的属性进行初始化。
- Spring学习笔记 关于Bean属性的初始化
- Spring学习笔记 关于Bean属性的初始化 - 使用inner bean以及List, Map与Set的初始化
- Spring学习笔记 关于Bean的初始化和清理-init和destroy方法
- Spring学习笔记 关于Bean定义的重用-使用abstract以及parent标签属性
- Spring学习笔记 关于Bean定义的重用-使用abstract以及parent标签属性
- Spring学习笔记-Bean初始化&销毁
- 学习笔记——Spring 中Bean属性的注入
- 关于Spring 中初始化bean的过程
- spring源码学习 - 配置文件bean的初始化
- Spring学习笔记 初始化属性为null值的方法
- Spring的lazy-init属性延迟初始化Bean
- spring学习笔记2--Bean的初始化(实例化)、作用域
- Spring学习笔记-IOC高级特性1-Bean的创建、作用域、初始化和析构
- 关于spring加载applicationContext初始化bean顺序的问题
- spring学习(-)关于bean的生命周期
- Spring学习笔记 关于Spring创建Bean的模式-Singleton(单例模式)和Prototype
- Spring学习笔记 关于Spring创建Bean的模式-Singleton(单例模式)和Prototype
- Spring学习笔记03--bean的作用域(scope属性)
- 请问基类中的虚方法到底有什么作用?
- 转载CString TO char* 解决办法
- Make bat look like txt file(使批文件看起来像文本文件)
- 再好的工作也有400次想辞职
- 工程师的选择
- Spring学习笔记 关于Bean属性的初始化
- 苦逼了就辞职弃学去旅行?
- 自己选择的路,跪着也要往下走……
- 5月15日到6月15日工作总结
- 父亲节
- 驱动开发 CTL_CODE 定义说明
- Google搜索引擎的奥秘
- android 文件存储
- 在cmd里面tnsping不通的解决