Spring框架学习笔记-注入参数详解

本文详细介绍了Spring框架中Bean的注入参数,包括字面值、引用其他Bean、内部Bean、null值、级联属性、集合类型属性以及简化配置方式。内容涵盖了如何注入基本类型、引用、集合以及级联属性等,并提供了XML配置的各种示例。
摘要由CSDN通过智能技术生成

在Spring配置文件中,用户不但可以将String、int等字面值注入到Bean中,还可以将集合、Map等类型的数据注入到Bean中,此外还可以注入配置文件中其他定义的Bean。

1.字面值

所谓“字面值”一般是指可用字符串表示的值,这些值可以通过< value >元素标签进行注入。在默认情况下,基本数据类型及其封装类、String等类型都可以采取字面注入的方式。
在下面的示例中,我们为Car注入了两个属性值并在Spring配置文件中使用字面值提供配置值:

<bean id="car" class="com.baobaotao.attr.Car">
<property name="maxSpeed"><value>200</value></property>
<property name="brand"><value><![CDATA[红旗&CA72]]></value></property>
</bean>

由于brand属性值value:红旗&CA72里面包含了一个XML特殊符号,因此我们特意在属性值外添加了一个 <![CDATA[]]> 的XML特殊处理标签,<![CDATA[]]>的作用是让XML解析器将标签中的字符串当作普通的文本对待,以防止某些字符串对XML格式造成破坏。
XML中共有5个特殊的字符,分别是 & < > " ’ 。如果配置文件中的注入值包括这些特殊字符,就需要特殊的处理。处理方式包括1.使用上面使用过的< ![CDATA[]] >这一特殊处理标签。2.使用XML转义序列表示这些特殊的字符,这5个特殊字符所对应的XML转移序列见下表:

特殊符号 转义序列
< &lt ;
< &gt ;
& &
" &quot ;
&apos ;

如果使用XML转义序列,我们可以使用以下的配置进行替换:

<property name="brand"><value>红旗&amp;CA72</value></property>

同时,我们还需要注意:一般情况下,XML解析器会忽略元素标签内部字符串的前后空格,但Spring却不忽略元素标签内部字符串的前后空格,如我们通过以下的配置为brand属性提供注入值:

<property name="brand"><value>空格红旗CT72空格</value></property>

Spring会将”红旗CT72“连同前后空格一起赋给brand属性。

2.引用其他Bean

Spring IoC容器中定义的Bean可以相互引用,IoC容器充当着红娘的作用。下面我们创建一个新的Boss类,Boss类中拥有一个Car类型的属性:

package com.baobaotao.attr;

public class Boss {
	private Car car;
	public void setCar(Car car){
		this.car=car;
	}	
}

boss的Bean通过< ref >元素引用car Bean,建立其boss对car的依赖:

<?xml version="1.0" encoding="UTF-8"?>
<bean id="car" class="com.baobaotao.attr.Car"/>

<bean id="boss" class="com.baobaotao.attr.Boss">
<property name="car"> <ref bean="car"></ref></property>
</bean>

< ref >元素可以通过以下三个属性引用容器中的其他Bean。
1.bean:通过该属性可以引用同一容器或父容器的Bean,这是最常见的形式。
2.local:通过概述性只能引用同一配置文件中定义的Bean,它可以利用XML解析器自动检查引用的合法性,以便在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值