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;
      }
    }

    注入方式四:自动装配

  • 相关阅读:
    Java 学习总结(一)
    每日学习心得:SharePoint 为列表中的文件夹添加子项(文件夹)、新增指定内容类型的子项、查询列表中指定的文件夹下的内容
    每日学习心得:SharePoint 2013 自定义列表项添加Callout菜单项、文档关注、SharePoint服务端对象模型查询
    HighCharts使用心得
    ECharts使用心得总结(二)
    每日学习心得:Js基本数据类型常用方法扩展
    每日学习心得:$.extend()方法和(function($){...})(jQuery)详解
    Mustache 使用心得总结
    Extjs editor 设置默认值
    Ext this.getView(...).saveDocumentAs is not a function
  • 原文地址:https://www.cnblogs.com/mengjianzhou/p/5986841.html
Copyright © 2011-2022 走看看