zoukankan      html  css  js  c++  java
  • 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和构造方法的参数类型相匹配,则通过构造注入该依赖对象,如果找不到,交抛出异常




  • 相关阅读:
    图书管理系统---基于form组件和modelform改造添加和编辑
    Keepalived和Heartbeat
    SCAN IP 解释
    Configure Active DataGuard and DG BROKER
    Oracle 11gR2
    我在管理工作中積累的九種最重要的領導力 (李開復)
    公募基金公司超融合基础架构与同城灾备建设实践
    Oracle 11g RAC for LINUX rhel 6.X silent install(静默安装)
    11gR2 静默安装RAC 集群和数据库软件
    Setting Up Oracle GoldenGate 12
  • 原文地址:https://www.cnblogs.com/baiyifengyun/p/13776769.html
Copyright © 2011-2022 走看看