Spring——day02

SpringIOC容器是一个超级工厂

在IOC中定义bean必须有无参构造

IOC赋值:

一、set方式注入

简单类型(8个基本类型+String)用Value,对象类型用ref=“bean的ID值”

依赖注入 底层是反射技术

根据类拿到方法。

特殊值注入,可以用<value>子标签  特殊符号可以用 <![CDATA[这里可以写任意符号]]>

    <bean id="teacher" class="com.entity.Teacher">
        <property name="Name">
            <value type="java.lang.String">z<![CDATA[<>?]]>s</value>
        </property>
    </bean>

 -处理空值

1、""   空字符串

    <bean id="teacher" class="com.entity.Teacher">
        <property name="Name">
            <value></value>
        </property>
    </bean>

 

2、null 

    <bean id="teacher" class="com.entity.Teacher">
        <property name="Name">
            <null/>
        </property>
    </bean>

二、构造器(构造方法赋值)注入

    <bean id="course" class="com.entity.Course">
<!--        构造方法赋值 可以根据 index type  name 来精确指定参数的位置-->
<!-- teacher 是一个类 -->
        <constructor-arg value="c++" name="courseName"></constructor-arg>
        <constructor-arg value="20" index="1"></constructor-arg>
        <constructor-arg ref="teacher" type="com.entity.Teacher"></constructor-arg>

<constructor-arg value="c++" name="courseName" index="0" type="com.entity.Course"></constructor-arg>
    </bean>

 

三、p命名空间注入

<bean id="course" class="com.entity.Course" p:courseName="c语言" p:courseHour="30" p:teacher-ref="teacher">

</bean>

 

示例:各种集合类型注入:

<!--    各种集合类型赋值-->

    <bean id="CollectionDemo" class="com.newinstanc.AllCollection">
        <property name="list" >
            <list>
                <value>足球</value>
                <value>篮球</value>
                <value>乒乓球</value>
            </list>
        </property>
        <property name="map" >
                <map>
                    <entry>
                        <key>
                            <value>foot</value>
                        </key>
                        <value>足球4</value>
                    </entry>

                    <entry>
                        <key>
                            <value>basketball</value>
                        </key>
                        <value>蓝球4</value>
                    </entry>

                    <entry>
                        <key>
                            <value>pp</value>
                        </key>
                        <value>乒乓球4</value>
                    </entry>
                </map>
        </property>
        <property name="set" >
            <set>
                <value>足球2</value>
                <value>篮球2</value>
                <value>乒乓球3</value>
            </set>
        </property>
        <property name="arry" >
            <array>
                <value>足球1</value>
                <value>篮2球</value>
                <value>乒乓球2</value>
            </array>
        </property>
        <property name="props" >
            <props>
                <prop key="foot">足球5</prop>
                <prop key="basktop">蓝球5</prop>
                <prop key="fpp">乒乓球5</prop>
            </props>
        </property>
    </bean>

四、自动装配

只适用于ref类型

 Course 类中有一个 Teacher 属性,依赖于 Teaher类,所以它会自动去寻找该IOC容器中是否有一个

bean的iD值=Course类的一个属性值。byName本质是byID

<bean id="course" class="com.entity.Course" autowire="byName"></bean>

 bean的id值=Course类中属性类型一致,前提条件只能有一个bean满足条件

    <bean id="course" class="com.entity.Course" autowire="byType"></bean>

根据bean的类型是否与该 Course类中构造方法参数类型一致 

   <bean id="course" class="com.entity.Course" autowire="constructor"></bean>

 也可在头文件中全局设置,自动装配方式 default-autowire="byName|byType|constructor"

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"
default-autowire="byName">
    

可读性差,建议少用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值