Spring框架中constructor-arg与property理解
配置文件的根元素是beans,每个组件使用bean元素来定义,bean元素可以有许多属性,其中有两个是必须的:id和class。id表示组件的默认名称,class表示组件的类型。
- 依赖注入的方式: constructor-arg:通过构造函数注入。 property:通过setxx方法注入。
- 设值注入,使用property子标签:
<bean id="renderer" class="com.apress.prospring.ch2.StandardOutMessageRenderer"> <property name="messageProvider">
<ref local="provider"/>
</property>
</bean>
- 构造子注入,使用constructor-arg子标签:
<bean id="provider"class="com.apress.prospring.ch4.ConfigurableMessageProvider"> <constructor-arg>
<value>This is a configurable message</value>
</constructor-arg>
</bean>
- 使用constructor-arg标签的index属性,对应于构造函数的多个参数,index属性的值从0开始。
<bean id="provider" lass="com.apress.prospring.ch4.ConfigurableMessageProvider"> <constructor-arg index="0">
<value>first parameter</value>
</constructor-arg>
<constructor-arg index="1">
<value>second parameter</value>
</constructor-arg>
</bean>
- 使用constructor-arg的type属性,避免构造子冲突:
<bean id="constructorConfusion" class="com.apress.prospring.ch4.ConstructorConfusion">
<constructor-arg type="int">
<value>90</value>
</constructor-arg>
</bean>
public class ConstructorConfusion {
public ConstructorConfusion(String someValue) {
System.out.println("ConstructorConfusion(String) called");
}
public ConstructorConfusion(int someValue) {
System.out.println("ConstructorConfusion(int) called");
}
}
注入集合属性,使用list,map,set和props标签,分别对应List,Map,Set和Properties:
<bean id="injectCollection" class="com.apress.prospring.ch4.CollectionInjection">
<property name="map">
<map>
<entry key="someValue">
<value>Hello World!</value>
</entry>
<entry key="someBean">
<ref local="oracle"/>
</entry>
</map>
</property>
<property name="props">
<props>
<prop key="firstName">
Rob
</prop>
<prop key="secondName">
Harrop
</prop>
</props>
</property>
<property name="set">
<set>
<value>Hello World!</value>
<ref local="oracle"/>
</set>
</property>
<property name="list">
<list>
<value>Hello World!</value>
<ref local="oracle"/>
</list>
</property>
</bean>
转载于:https://www.cnblogs.com/-strong/p/7651912.html
Spring框架中constructor-arg与property理解相关推荐
- 理解Spring框架中Bean的作用域
本篇介绍Spring Bean实例的作用范围,Spring Bean实例的作用范围由配置项scope限定.通过本篇的学习,可以达成如下目标. ● 应用scope配置项配置Bean的作用域 ● 应用单例 ...
- Spring框架中的设计模式(一)
设计模式有助于遵循良好的编程实践.作为最流行的Web框架之一的Spring框架也使用其中的一些. 本文将介绍Spring Framework中使用的设计模式.这是5篇专题文章的第一部分.这次我们将发现 ...
- Spring框架中的Bean
1.什么是Bean? 在Spring框架中,Bean是指一个由Spring容器管理的对象.这个对象可以是任何一个Java类的实例,例如数据库连接.业务逻辑类.控制器等等.Bean实例的创建和管理是由S ...
- spring框架_一篇文章带你理解Spring框架
虽然现在流行用SpringBoot了,很多配置已经简化和封装了,但是对于Spring的一些基础我们了解一些是对我们自己的架构思想很有帮助的!接下来和笔者一起来探讨一下Spring框架吧! 1.什么是S ...
- 在Spring框架中使用SQL存储过程
Spring框架也支持对SQL存储过程的调用,SQL存储过程是一组预先定义好的SQL语句,并存储到数据库管理系统中,外部程序可以直接调用执行.本课主要讨论在Spring框架中应用程序如何调用MySQL ...
- Spring框架中提取list集合类型属性注入
提取list集合类型属性注入 前言 引入名称空间 编写`xml`配置文件 运行结果 前言 对于某一个类型属性通用性较高的情况下,可以单独的提取出来,给需要的bean进行引用. 有关类的创建见<S ...
- Spring框架中集合属性为对象的注入方法
Spring框架中集合属性为对象的注入方法 前言 创建基础类 创建`Course`类 编写XML配置文件 创建测试类 执行结果 前言 在集合的属性注入中,如果注入属性为普通类型(String.int) ...
- Spring框架中XML配置文件注入集合(数组、LIST、MAP、SET)属性
Spring框架中XML配置文件注入集合属性 前言 创建测试类与属性 配置XML配置文件 建立调用类 调用结果 前言 某些类的属性是可能是集合,包括:数组.LIST.MAP.SET等集合,在Sprin ...
- Spring框架中级联赋值(外部属性注入)以及内部属性注入
Spring框架中级联赋值(外部属性注入)以及内部属性注入 前言 级联赋值 1.对上述外部`Bean`配置文件进行修改: 2.级联赋值第二种写法 内部`bean`属性注入 前言 Spring框架中存在 ...
- Spring框架中XML配置特殊属性注入
Spring框架中XML配置特殊属性注入 前言 创建测试类 其他类型属性 前言 Spring框架中,在通过set方式进行属性注入时,可能会遇到某些特殊字符的注入,例如:null和某些标签字符" ...
最新文章
- shell学习之shell基础知识了解
- 3月Win 10美占有率超20% 免费升级是否延长受关注
- 用DocumentFragments或innerHTML取代复杂的元素注入
- 计算机专业到投行的工作需要的金融财务知识
- printf linux 头文件,Linux C 格式化输出时要注意的问题
- findfirstfile函数为什么不能遍历doc_编程之美:IO多路复用——记性不好的poll函数...
- webrtc回声消除线程android,android WebRTC 示例demo源码(回音消除)
- 在Visual Studio 2010中创建多项目(解决方案)模板之关键步骤【四】
- 大楼通信综合布线系统_系统梳理一下综合布线系统的方方面面
- 单播 广播 组播_【技术解析】关于组播概念那些你需要知道的~
- vivo真实案例:中台到底解决了什么问题?
- 用css和js写表单验证,使用javascript及正则表达式实现表单验证(CSS,js练习)
- 如何判断一个大佬值不值得跟随
- iOS和android运存机制,再次确认苹果的1G运存相当于安卓的4G运行内存
- java日期处理SimpleDateFormat等
- NumPy库---数组的基本操作
- nginx 映射ip端口服务
- 多媒体技术期末复习资料
- c语言头文件sys wait.h,错误:sys/wait.h:没有这样的文件或目录
- 美化字体 css3,美化你空间的文字:20种CSS字体镜像特效