美文网首页
Spring-ioc-配置

Spring-ioc-配置

作者: 单调的灵魂 | 来源:发表于2021-09-25 21:16 被阅读0次

创建对象的方式

本质就是调用对象的构造函数,不指定为调用无参构造函数

  • 通过参数下标构造
<constructor-arg index="0" value="1"></constructor-arg>
  • 通过参数名称构造
<constructor-arg name="name" value="111"></constructor-arg>
  • 通过参数类型构造
<constructor-arg type="java.lang.String" value="2"></constructor-arg>

多个构造函数时

  • 根据参数个数、参数类型、参数名称来匹配(参数个数相同时,使用index匹配时,默认类型为string 类型)

    <constructor-arg index="0" type="int" value="1">
    

可以用c空间来简化下xml

注入对象属性的方式

  • xml 中配置,挑几个特殊的,本质是调用setter方法来进行注入的

    • 数组
    <property name="books">
        <array>
            <value>四大名著</value>
            <value>钢铁是怎么炼成的</value>
        </array>
    </property>
    
    • list和map
    <property name="hobs">
        <list>
            <value>吃饭</value>
            <value>睡觉</value>
        </list>
    </property>
    <property name="card">
        <map>
            <entry key="身份证" value="123123"/>
            <entry key="银行卡" value="123123"/>
        </map>
    </property>
    
    • 自动装配

      两种方式,通过name或者type,本质看下xml上下文有无唯一符合条件的注入值

      <bean id="student" class="xxxx.Student" autowire="byName">
      </bean>
      
    • 可以用p空间来简化下xml

  • 注解注入,两种方式注入,注解在setter方法前就是调用setter方法,在属性前就是调用反射的方法

    @value() //注入对应的值
    
    @Autowired // 自动装配, 优先通过type,然后再通过name来检索,可以设置required为false来让检索到的值可以为空
    @Qualifier("cat1")// 在自动装配的前提下找到对应名字的autowired,本质是通过type和指定的name来检索context上下文中的有无对应的值
        
    @Resource//相当于Autowired、Qualifier功能的组合,但是不能设置required的值
    

相关文章

网友评论

      本文标题:Spring-ioc-配置

      本文链接:https://www.haomeiwen.com/subject/wvcfnltx.html