zoukankan      html  css  js  c++  java
  • 小菜鸟学 Spring-Dependency injection(二)

    注入方式一:set注入

    <bean id="exampleBean" class="examples.ExampleBean">
    
    <!-- setter injection using the nested <ref/> element -->
    <property name="beanOne"><ref bean="anotherExampleBean"/></property>
    
    <!-- setter injection using the neater 'ref' attribute -->
    <property name="beanTwo" ref="yetAnotherBean"/>
    <property name="integerProperty" value="1"/>
    </bean>
    
    <bean id="anotherExampleBean" class="examples.AnotherBean"/>
    <bean id="yetAnotherBean" class="examples.YetAnotherBean"/>
    public class ExampleBean {
    
      private AnotherBean beanOne;
      private YetAnotherBean beanTwo;
      private int i;
    
      public void setBeanOne(AnotherBean beanOne) {
          this.beanOne = beanOne;
      }
    
      public void setBeanTwo(YetAnotherBean beanTwo) {
          this.beanTwo = beanTwo;
      }
    
      public void setIntegerProperty(int i) {
          this.i = i;
      }
    }

    注入方式二:构造注入

    <bean id="exampleBean" class="examples.ExampleBean">
    
    <!-- constructor injection using the nested <ref/> element -->
    <constructor-arg>
      <ref bean="anotherExampleBean"/>
    </constructor-arg>
    
    <!-- constructor injection using the neater 'ref' attribute -->
    <constructor-arg ref="yetAnotherBean"/>
    
    <constructor-arg type="int" value="1"/>
    </bean>
    
    <bean id="anotherExampleBean" class="examples.AnotherBean"/>
    <bean id="yetAnotherBean" class="examples.YetAnotherBean"/>
    public class ExampleBean {
    
      private AnotherBean beanOne;
      private YetAnotherBean beanTwo;
      private int i;
    
      public ExampleBean(
          AnotherBean anotherBean, YetAnotherBean yetAnotherBean, int i) {
          this.beanOne = anotherBean;
          this.beanTwo = yetAnotherBean;
          this.i = i;
      }
    }

    注入方式三:静态工厂方法注入

    <bean id="exampleBean" class="examples.ExampleBean"
        factory-method="createInstance">
    <constructor-arg ref="anotherExampleBean"/>
    <constructor-arg ref="yetAnotherBean"/>
    <constructor-arg value="1"/>
    </bean>
    
    <bean id="anotherExampleBean" class="examples.AnotherBean"/>
    <bean id="yetAnotherBean" class="examples.YetAnotherBean"/>
    public class ExampleBean {
    
      // a private constructor
      private ExampleBean(...) {
        ...
      }
      
      // a static factory method; the arguments to this method can be
      // considered the dependencies of the bean that is returned,
      // regardless of how those arguments are actually used.
      public static ExampleBean createInstance (
              AnotherBean anotherBean, YetAnotherBean yetAnotherBean, int i) {
    
          ExampleBean eb = new ExampleBean (...);
          // some other operations...
          return eb;
      }
    }

    注入方式四:自动装配

  • 相关阅读:
    MFC TeeChart 用法整理二 (画二维图)
    CFileFind类的详解以及应用实例
    error C2065: 'AfxCriticalTerm' : undeclared identifier 解决办法
    error LNK2001
    ShellExecute详细用法(可以单独打开一个文件)
    java连接SQL Server数据库
    Java 异常处理
    eclipse 无法自动匹配
    Java简单的表格模型
    Java 字符串常用操作(String类)
  • 原文地址:https://www.cnblogs.com/mengjianzhou/p/5986841.html
Copyright © 2011-2022 走看看