zoukankan      html  css  js  c++  java
  • spring Bean的三种注入方式

    1、构造函数注入:

    构造函数的注入方式分为很多种

    (1)普通构造函数,空参数的构造函数

    <bean id="exampleBean" class="examples.ExampleBean"/>  

    (2)根据构造函数的参数顺序和个数

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

    (3)根据构造函数的参数类型匹配

    <bean id="exampleBean" class="examples.ExampleBean">
    <constructor-arg type="int" value="7500000"/>
    <constructor-arg type="java.lang.String" value="42"/>
    <constructor-arg type="java.lang.Boolean" value="false"/>
    </bean>

    (4)根据构造函数的参数索引顺序和个数

    <bean id="exampleBean" class="examples.ExampleBean">
    <constructor-arg index="0" value="3000"/>
    <constructor-arg index="1" value="42"/>
    </bean>

    (5)spring3以上还可以通过参数名称进行注入

    <bean id="exampleBean" class="examples.ExampleBean">
    <constructor-arg name="age" value="25"/>
    <constructor-arg name="name" value="jerry"/>
    </bean>

    2、静态工厂方法注入

    <bean id="clientService"
          class="examples.ClientService"
          factory-method="getInstance"/>
    public class ClientService {
    
      public static ClientService getInstance() {
        return new clientService();
      }
    }

    3、实例化的工厂方法注入

    public class MyServiceFactory {
        
        public MyServiceBean createMyServiceBean(){
             
            return new MyServiceBean();
        }
    }
    <bean id="myServiceFactory" class="com.my.bean.MyServiceFactory"></bean>
    
    <bean id="personService" factory-bean="myServiceFactory" factory-method="createMyServiceBean"></bean>
  • 相关阅读:
    使用Shell脚本查找程序对应的进程ID,并杀死进程
    转,mysql快速保存插入大量数据一些方法总结
    L2TP/IPSec一键安装脚本
    全文搜索引擎 Elasticsearch 入门教程
    vmware设置扩大硬盘后如何在linux内容扩容
    Java序列化说明
    GIT常用命令
    java中的CAS
    Class.forName()用法详解
    Java用pdfbox或icepdf转换PDF为图片时,中文乱码问题
  • 原文地址:https://www.cnblogs.com/hjy9420/p/5012563.html
Copyright © 2011-2022 走看看