Spring IOC 练习

TOC

练习题

实验一

通过IOC容器创建对象,并为属性赋值

ico.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="person01" class="per.wzy.spring.Person">
        <property name="age" value="18"></property>
        <property name="name" value="张三"></property>
        <property name="sex" value="男"></property>
    </bean>
</beans>

test.java

public class ioctest {
    @Test
    public void Test(){

        //创建容器对象
        //容器中的对象在容器创建完成的时候就已经创建好了(所有的对象都会创建)
        //同一组件在IOC中是单实例的
        ApplicationContext context = new ClassPathXmlApplicationContext("ioc.xml");

        //获取对象
        Person person01 = (Person) context.getBean("person01");

        System.out.println(person01.getName());

    }
}

实验二

通过Bean的类型从IOC中获取bean的实例

//如果IOC容器中这个类型的bean有多个,则查找会报错
Person person = context.getBean(Person.class);
//存在多个同类型bean,根据id查找
Person person = context.getBean("person02",Person.class);

实验三

3.1使用构造器在IOC中创建bean

    <bean id="person03" class="per.wzy.spring.Person">
        <constructor-arg name="name" value="大花"></constructor-arg>
        <constructor-arg name="age" value="19"></constructor-arg>
        <constructor-arg name="sex" value="女"></constructor-arg>
    </bean>
  • 不添加name属性,默认按照构造器中属性顺序赋值
  • 添加index属性,设置位置
  • 添加type属性,设置值的类型,适用于构造器重载的情况

3.2通过p名称空间为bean赋值

  1. 引入p名称空间:beans中添加 xmlns:p="http://www.springframework.org/schema/p"
  2. 使用p名称空间进行赋值
    <bean id="person05" class="per.wzy.spring.Person"
           p:age="15" p:name="二花" p:sex="母猪">
       </bean>

实验四

正确的为各种属性赋值 测试使用nu11值、 引用类型赋值(引用其他bean、引用内部bean) 集合类型赋值(List、Map、 Properties)

    **复杂属性赋值**
<bean id="chid01" class="per.wzy.spring.Children">
        <constructor-arg name="age" value="10"></constructor-arg>
        <constructor-arg name="name" value="梦儿"></constructor-arg>
        <constructor-arg name="sex" value="女"></constructor-arg>
    </bean>

    <bean id="person06" class="per.wzy.spring.Person">
        <constructor-arg name="age" value="16"></constructor-arg>
        <!--地址引用 bean-->
        <!--<constructor-arg name="child" ref="chid01"></constructor-arg>-->
        <constructor-arg name="child">
            <!--对象使用bean标签进行创建-->
            <bean class="per.wzy.spring.Children">
                <property name="sex" value="女"></property>
                <property name="name" value="翠花"></property>
                <property name="age" value="2"></property>
            </bean>
        </constructor-arg>
        <constructor-arg name="childrens">
            <list>
                <bean id="child02" class="per.wzy.spring.Children" p:sex="男" p:name="王五" p:age="18"></bean>
                <ref bean="chid01"></ref>
            </list>
        </constructor-arg>
        <constructor-arg name="name" value="三花"></constructor-arg>
        <constructor-arg name="sex" value="女"></constructor-arg>
    </bean>
  • 赋NULL值,不填写value属性,添加标签
  • 复杂属性赋值均不在value中进行赋值
  • List赋值:添加标签,标签中继续添加其他标签




转载于:https://www.cnblogs.com/local-wzy/p/11234944.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值