1、建立各种类型
private Car car;
private List<Book> books;
private Map<String,Object> maps;
private Properties properties;
2、赋null值方法
在ioc.xml配置文件中,配置如下
<bean id="person01" class="atguigu.bean.Person">
<!-- 设置name值为null的方法-->
<property name="name"><null/></property>
</bean>
测试Person中name的值是否为null
默认引用类型为null值;基本类型就是各个类型的默认值
@Test
public void test05(){
Person bean = (Person) ioc02.getBean("person01");
System.out.println(bean.getName() == null);
}
3、引用外部bean
(1)首先建立一个id为car01的bean
<bean id="car01" class="atguigu.bean.Car">
<property name="carName" value="风驰电掣"></property>
<property name="color" value="红色"></property>
<property name="price" value="282929"></property>
</bean>
(2)利用 ref 引用外部
<!--引用外部bean:ref代表引用一个外面的值,此时的car == ioc2.getBean("car01"),-->
<property name="car" ref="car01"></property>
4、引用内部bean
在property中使用bean,如下
<property name="car">
<bean class="atguigu.bean.Car">
<!--对象可以使用bean标签创建 car = new Car(); 引用内部bean,内部bean无法被外界获取,只能内部使用-->
<property name="carName" value="自行车-内部bean"></property>
</bean>
</property>
5、为List类型赋值
在property中使用list和p标签
注意:使用该标签需要在ioc.xml配置文件的头部添加以下:
xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util"
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-4.0.xsd
<!-- 为list类型赋值-->
<property name="books">
<!-- 此时books = new ArrayList<Books>();-->
<list>
<!-- list标签体中添加每一个元素-->
<bean id="book00x" class="atguigu.bean.Book" p:bookName="西游记"></bean>
<!-- 引用外部bean-->
<ref bean="book01"/>
</list>
</property>
6、为Map类型赋值
在property中使用map标签,在map中使用entry
<property name="maps">
<!--此时maps = new LinkedHashMap<>();-->
<map>
<entry key="key01" value="张三"></entry>
<entry key="key02" value="李四"></entry>
<entry key="key03" value-ref="book01"></entry>
<entry key="key04">
<bean class="atguigu.bean.Car">
<property name="carName" value="map中carName"></property>
</bean>
</entry>
</map>
</property>
7、为Properties赋值
在properties中使用props标签
<property name="properties">
<!--properties = new Properties();所有的k==v都是string-->
<props>
<!--k==v值都是string,所以值直接写在标签体中-->
<prop key="username">root</prop>
<prop key="password">123422</prop>
</props>
</property>
8、util名称空间创建集合类型的bean,方便被别人引用
(1)创建util
<!-- 相当于new LinkedHashMap<>()-->
<util:map id="mymap">
<!-- 添加元素-->
<entry key="key01" value="张三"></entry>
<entry key="key02" value="李四"></entry>
<entry key="key03" value-ref="book01"></entry>
<entry key="key04">
<bean class="atguigu.bean.Car">
<property name="carName" value="map中carName"></property>
</bean>
</entry>
</util:map>
(2)利用 ref 引用
<!-- util名称空间创建集合类型的bean,方便被他人引用-->
<bean id="person03" class="atguigu.bean.Person">
<property name="maps" ref="mymap"></property>
</bean>
9、级联属性赋值,即给属性的属性赋值
注意:级联属性可以修改属性的属性,但是注意原来bean中的值会被修改
<bean id="person04" class="atguigu.bean.Person">
<property name="car" ref="car01"></property>
<!-- 为car赋值时,改变car的价格-->
<property name="car.price" value="12222"></property>
</bean>