• spring-Ioc(二)学习笔记


    属性注入方式

    • 设值注入:也就是set注入,通过setter方法注入
      • java Bean
        private ITestDao dao;
        public void setDao(ITestDao dao){
         this.dao = dao
        }
    • xml文件
        <bean id="..." class="...">
            <property name="dao">
                <ref bean="....">
            </property>
        </bean>
    • 构造注入:
      • 直接量:String,8种值类型都是用value标签赋值,用type属性来指定数据的类型
      • 当构造方法重载时,因参数个和参数类型不能区分时,引入 index属性来指明参数的位置

    P命名空间注入

    • 引入p的schema文件
        <!-- 直接量(基本数据类型,字符串)属性的赋值方式-->
    <bean id="testBiz" class="cn.bdqn.spring.loc.service.impl.TestBiz"p:age="23"  p:name="jack"></bean>
    
    <!--引用Bean的赋值方式-->
    <bean id ="testDao" class="cn.bdqn.spring.loc.dao.NewDao"></bean>
    <bean id ="testBiz" class="cn.bdqn.spring.loc.service.impl.TestBiz" p:dao-ref="testDao"></bean>

    当bean的属性中存在集合时,如:list, set ,map注入方式

    <bean id="moreComplexObject" class="example.ComplexObject">
        <!--当属性的返回结果是类是properties文件时-->
        <property name="adminEmails">
            <props>
                <prop key="administrator">administrator@example.org</prop>
                 <prop key="support">support@example.org</prop>
                 <prop key="development" > development@example.org</prop>
            </props>
          </property>
        <!--当属性的返回结果是list集合时-->
        <property name="someList">
            <list>
                <value>a list element followed by a reference</value>  <!--直接量赋值方式-->
                <ref bean="myDataSource">    <!--java Bean的赋值方式-->
            </list>
        </property>
    
    
        <!--当属性的返回结果为map时-->
        <property name="someMap">
            <map>
                <entry key="an entry" value="just some string"/>
                <entry key="a ref" value-ref="myDataSoruce"/>
             </map>
        </property>
        <!--当属性的返回结果为set时-->
        <property name="someSet">
            <set>
                <value>just some string<value>
                <ref bean="myDataSource"/>
            </set>
        </property>
    </bean>
    

    给元素赋值null 或者“”

    <!--把属性设置为null值-->
    <bean class="ExampleBean">
        <property name="email">
            <null/>
        </property>
    </bean>
    <!--设置为空字符串-->
    <bean class="ExampleBean">
        <property name="email" value="">
    </bean>
    • spring内部Bean的注入,相当于随用随new,外部的其它Bean不能使用

    自动装配

    • 按类型匹配
    • 设置全局自动装配的类型
    • Spring提供的4种自动装配类型
    取值说明
    no 默认值,Spring默认不进行自动装配,必须显式指定依赖对象</td
    byName 根据属性我自动装配,Spring自动查找与属性名相同的id,如果找到,则自动注入,否则什么也不做</td
    byType根据的类型自动化装配,Spring自动查找与属性类型相同的Bean,如果刚好找到唯一的那个,则自动注入。如果找到多个与属性类型相同的Bean,则抛出异常,如果没有找到,就什么也不做
    constructor 和byType类似,不过它针对构造方法,如果Spring找到一个Bean和构造方法的参数类型相匹配,则通过构造注入该依赖对象,如果找不到,交抛出异常




  • 相关阅读:
    怎么才能学好php
    MySQL: ON DUPLICATE KEY UPDATE 用法 避免重复插入数据
    RabbitMQ挂掉问题处理
    页面出现假死的问题
    memkeys 安装时遇到的问题及解决办法
    php 中的$argv与$argc
    PHPExcell单元格中某些时间格式的内容不能正确获得的处理办法
    php中的后期静态绑定("Late Static Binding")
    mybatis从零阅读(一)大纲
    windows 命令
  • 原文地址:https://www.cnblogs.com/baiyifengyun/p/13776769.html
Copyright © 2020-2023  润新知