Spring IoC(控制反转)【二】
来源:互联网 发布:mac怎么制作ppt 编辑:程序博客网 时间:2024/06/06 03:54
属性值的配置方式
IoC可以通过两种方式注入依赖的属性,即setter方法和构造器方法。
不论是setter方法还是构造器方法,都需要为方法制定具体的参数值为属性赋值。
参数值有不同的类型,可以分为以下三种情况:
1、基本数据类型和Stirng类型
基本数据类型包括:byte、short、int、long、float、double、char、boolean以及对应的包装器类。
当值的类型是基本类型或者String类型时,可以使用<value>元素配置值。
2、其他bean类型
属性除了可以使基本类型或者Sring类型,还可能是其他类的类型。
public class Order{ private String id; private Customer customer;}上述代码中,Order类的属性customer是Customer类型,也就是说Order的customer属性类型是其他bean。
在这种情况下,需要实例化一个Customer类型的bean,然后在Order中通过ref引用这个bean。
<bean id="customer" class="vo.Customer"><property name="custid"><value>1</value></property><property name="custname"><value>John</value></property></bean><bean id="cart" class="vo.Order"><property name="custid"><value>1</value></property><property name="custname"><ref bean="customer"/></property></bean>上述配置中先实例化了一个id值为customer的Customer类型bean,然后再Order的配置中通过
<ref bean="customer">将其复制给Order的customer属性,也就是Order引用了Customer类型的bean。
3、null值
如果需要为某个属性指定null值,可以使用如下配置:
<property name="name"><null></null></property>或者
<property name="name"><null/></property>值得注意的是如果使用下面的配置,则不是空值而是空字符串:
<property name="name"><value></value></property>
在实际应用中,类和类之间可能是一对多的关联关系,那么就需要使用集合类型来持有“多”的一方的对象。
例如,存在Order类和Item类,Order类中关联多个Item实例,因此使用List集合来实现这样的一对多关联关系:
public class Order{private String id;private Customer customer;private List<Item> items;}当类的属性是集合类型时,也可以使用IoC进行注入。
常用的集合类型有四种,即List、Set、Map以及Properties。
1、<list>
<bean id="item1" class="cart.Item"><property name="itemid"><value>1</value></property><property name="name"><null/></property><property name="price"><value>34.5</value></property></bean><bean id="item2" class="cart.Item"><property name="itemid"><value>2</value></property><property name="name"><value>DVD</value></property><property name="price"><value>23</value></property></bean><bean id="cart" class="cart.Order"><property name="itemid"><value>1</value></property><property name="customer"><ref bean="customer"></property><property name="items"><list><ref bean="item1"/><ref bean ="item2"/></list></property></bean>
上述配置中,首先创建了两个Item类的bean,分别为item1和item2.
在cart的配置中,使用<list>元素将item1和item2添加到集合items中,赋值给属性items。
2、<set>
当集合采用Set类型的集合类时,则采用<set>元素进行装配,用法与<list>相同。
3、<map>
当集合采用Map类型的映射类时,则采用<map>元素进行装配。
<bean><property name=""><map><entry><key><value></value></key><ref/></entry></map></propety></bean>
<map>元素下可以有多对<entry></entry>条目元素,每个条目配置Map的一对键值对。
其中<key>用来配置当前条目的键值,<key>元素内可以使用<value>、<ref>、<list>、<set>等各种类型元素。
键值对中的值也可以是<value>、<ref>、<list>、<set>等各种类型元素。
4、<props>
如果集合采用Properties类型,则使用<props>进行配置。
<bean><property name=""><props><prop key=""></prop><prop key=""></prop></props></property></bean><props>的每个条目都只接受字符串类型的值,不能使用其他类型。
- Spring IoC(控制反转)【二】
- Spring详解(二)------IOC控制反转
- Spring IoC(控制反转)
- Spring IoC(控制反转)
- 【spring框架】(二)控制反转(IOC)容器
- Spring(二)入门案例IOC(控制反转)
- Kotlin的Spring之旅(二):IOC控制反转
- Spring基础学习二 : IOC控制反转
- Spring IOC 反转控制
- Spring-----> IOC(控制反转)
- Spring - 控制反转IOC
- Spring IoC[控制反转]
- Spring控制反转IOC
- Spring IOC控制反转
- Spring IOC 控制反转
- spring ioc 控制反转
- Spring之控制反转(IoC)
- Spring之控制反转(IoC)
- android-ndk-r9漏洞
- hdu 4883 bestcoder round 2 1001 TIANKENG’s restaurant
- nfs挂载文件系统出现Warning: unable to open an initial console.
- [unity]Unity3d获取APK签名及公钥的方法
- ARM汇编指令中常用的伪指令(一)
- Spring IoC(控制反转)【二】
- 一个不错的GIT入门教程
- hidden symbol __dso_handle reference: link error
- oracle表的删除
- CentOS下端口查看
- 技术内幕:Android的IPC机制-Binder
- LeetCode Sqrt(x)
- TCP握手协议和状态变迁
- saturating nonlinearities 饱和非线性