zoukankan      html  css  js  c++  java
  • Spring 基于构造函数的依赖注入

    基于构造函数依赖注入

    sprig通过bean创建对象时,会通过bean提供的参数来选择调用某个构造函数。上例中, <constructor-arg ref="spellChecker"/>  就是一个构造函数的参数,参数值是下方的一个bean。

    <?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-3.0.xsd">
    
       <!-- Definition for textEditor bean -->
       <bean id="textEditor" class="com.tutorialspoint.TextEditor">
          <constructor-arg ref="spellChecker"/>
       </bean>
    
       <!-- Definition for spellChecker bean -->
       <bean id="spellChecker" class="com.tutorialspoint.SpellChecker">
       </bean>
    
    </beans>

    当有多个参数的时候,按照顺序来注入参数就可以了。

    package x.y;
    public class Foo {
       public Foo(Bar bar, Baz baz) {
          // ...
       }
    }
    <beans>
       <bean id="foo" class="x.y.Foo">
          <constructor-arg ref="bar"/>
          <constructor-arg ref="baz"/>
       </bean>
    
       <bean id="bar" class="x.y.Bar"/>
       <bean id="baz" class="x.y.Baz"/>
    </beans>

    有其他的基本数据类型的话可以采用下方的方式:

    1.使用type来说明数据类型,value来注入数值

    package x.y;
    public class Foo {
       public Foo(int year, String name) {
          // ...
       }
    }
    <beans>
    
       <bean id="exampleBean" class="examples.ExampleBean">
          <constructor-arg type="int" value="2001"/>
          <constructor-arg type="java.lang.String" value="Zara"/>
       </bean>
    
    </beans>

    2.通过index索引来注入也可以

    <beans>
    
       <bean id="exampleBean" class="examples.ExampleBean">
          <constructor-arg index="0" value="2001"/>
          <constructor-arg index="1" value="Zara"/>
       </bean>
    
    </beans>

    注意!!!如果你想要向一个对象传递一个引用,你需要使用 标签的 ref 属性,如果你想要直接传递值,那么你应该使用如上所示的 value 属性。

  • 相关阅读:
    【Jmeter】 jmeter-server.bat 无法启动
    Jmeter场景设置与监听
    Jmeter性能测试配置
    【VMware】“该虚拟机似乎正在使用中”
    Jmeter介绍以及脚本制作与调试
    性能测试简介
    robotframework配置邮箱服务器
    Java冒泡排序
    LN(A)MT单机版架构部署
    Openstack之八:部署自服务网络
  • 原文地址:https://www.cnblogs.com/qie-zi/p/8795245.html
Copyright © 2011-2022 走看看