Spring IOC 02 为各种类型属性赋值

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>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值