Spring基础---IoC使用拓展
2017-11-14 19:21
218 查看
<!-- 配置纸张 --> <bean id="A4" class="paper.TextPaper"> <property name="lineCountChar" value="5"></property> <property name="lineInPage" value="10"></property> </bean>
这种注入称为设值注入,此外还有一些其他的注入方式
一、构造注入
<!-- 构造注入 --> <bean id="A1" class="paper.TextPaper"> <constructor-arg value="4" name="lineCountChar"></constructor-arg> <constructor-arg value="10" name="lineInPage" ></constructor-arg> </bean>
一个"constructor-arg"元素表示构造方法的一个参数,且使用时不区分顺序. 为了避免构造方法的参数出现混淆,无法区分时,可以通过"constructor-arg"元素的name(对应构造的参数名)属性和type(对应构造的参数类型)属性来进行限定.
二、使用p命名空间实现属性注入
首先,使用前要先添加p命名空间的声明:
xmlns:p="http://www.springframework.org/schema/p" <!-- 在application头 添加 -->
用于p命名空间注入属性
<bean id="user" class="entity.User" p:username="张三" p:age="23" ></bean>
三、注入不同类型数据类型
1、注入特殊字符的值<bean id="user4" class="entity.User"> <property name="name"> <!‐‐ 两种都可以 ‐‐> <!‐‐<value><![CDATA[a>b&&3<4]]></value>‐‐> <value>a>b&&3<4</value> </property> </bean> <!-- 少量可以使用预定义的实体引用 大量的话建议使用 <![CDATA[.....]]> 节-->
2、引用其他Bean组件
<!-- 配置一个狗狗类 --> <bean id="dog" class="entity.Dog" > <property name="id" value="5"></property> <property name="name" value="小黑"></property> </bean> <!-- 配置主人类 --> <bean id="master" class="entity.Master" > <property name="id" value="1"></property> <property name="pet"> <!‐‐只在本配置文件中查找"<ref local="dog"/>"--> <!‐‐ 可以在本配置文件以及相关的配置文件中找--> <ref bean="dog"/> </property> </bean>
Spring中定义的Bean可以互相引用,除了使用ref属性还可以通过<ref>子元素实现 <ref>子元素的bean属性和local属性都可以用来指定要引用的Bean的id. 区别是:local属性只能在同一个配置文件中查找 而bean属性可以在本配置文件以及相关的配置文件中找
3、使用内部Bean—–>只在该处使用
<!-- 配置主人类 --> <bean id="master" class="entity.Master" > <property name="id" value="1"></property> <property name="pet"> <bean class="entity.Dog" > <property name="id" value="5"></property> <property name="name" value="小黑"></property> </bean> </property> </bean>
4、注入集合类型属性
新建实体类User
1)、注入List集合(数组类型)属性
对于List或数组类型的属性,可以使用”<list>”标签注入
<bean id="user" class="entity.User"> <property name="strs"> <list> <value>su1</value> <value>su2</value> <value>su3</value> </list> </property> <property name="list"> <list> <value>aaa</value> <value>bbb</value> <value>ccc</value> </list> </property> </bean>
“<list>”标签中间可以使用<value>、<ref>等标签注入集合元素,甚至是另一个<list>标签
2)、注入Set类型的属性
<bean id="user" class="entity.User"> <property name="set"> <set> <value>s1</value> <value>s2</value> <value>s3</value> </set> </property> </bean>
set标签中也可以使用 value、ref等标签注入集合元素
3)、注入Map类型的属性
<bean id="user" class="entity.User"> <property name="map"> <map> <entry key="name" value="abc"></entry> <entry key="age" value="22"></entry> </map> </property> </bean>
如果Map中的键或值是Bean对象, 可以把上面代码中的 key、value属性换成对应的 key-ref、value-ref属性
4)、注入Properties类型的属性
<bean id="user" class="entity.User"> <property name="props"> <props> <prop key="p1">pop1</prop> <prop key="p2">pop2</prop> </props> </property> </bean>
Properties 中的键和值通常都是字符串类型
5)、注入null和空字符串值
<!-- 注入空串 --> <bean id="user" calss="entity.User"> <property name="email"><value></value></property> </bean> <!-- 注入null值 --> <bean id="user" calss="entity.User"> <property name="email"><null/></property> </bean>
相关文章推荐
- Spring基础---AOP使用拓展
- (spring-第7回【IoC基础篇】)BeanDefinition的载入与解析&&spring.schemas、spring.handlers的使用
- spring(基础13) 使用spring详解来构造IoC容器
- 使用spring2.5注释驱动的IOC功能
- Struts中使用Spring的Ioc
- 在Servlet(或者Filter,或者Listener)中使用spring的IOC容器
- 使用 Spring 2.5 注释驱动的 IoC 功能
- 在Servlet(或者Filter,或者Listener)中使用spring的IOC容器
- 使用 Spring 2.5 注释驱动的 IoC 功能
- 使用Spring2.5的Autowired实现注释型的IOC
- 使用 Spring 2.5 注释驱动的 IoC 功能
- 使用 Spring 2.5 注释驱动的 IoC 功能(一)
- Spring的Ioc简单使用实例(含XML配置文件路径知识)
- 使用 Spring 2.5 注释驱动的 IoC 功能
- Spring IOC基础(Spring2.0)
- 一个例子的重构过程到Spring的IoC之使用
- spring 学习(1.1) 入门基础- IoC/依赖注入
- Spring笔记之六(IoC Singleton) 单例的使用与否
- 使用Spring2.5的Autowired实现注释型的IOC
- 在Servlet(或者Filter,或者Listener)中使用spring的IOC容器