Spring中Bean被注入的几种方式-创新互联

说明

  一共有5种方式:

成都创新互联公司于2013年开始,是专业互联网技术服务公司,拥有项目成都网站制作、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元辽中做网站,已为上家服务,为辽中各地企业和个人服务,联系电话:028-86922220

    1. @Autowired+属性,被注入
    2. 通过构造方法,被注入
    3. 通过set方法,被注入
    4. 通过List属性,被注入
    5. 通过Map属性,被注入

@Autowired + 属性

  这种是最普遍的,此时有一个bean:

import org.springframework.stereotype.Component;

@Component
public class A {}

  此时另一个bean,注入A这个bean,

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class B {//a属性就被注入了
    @Autowired
    private A a;

}

通过构造方法

  A这个bean,和上面一样,

@Component
public class B {private A a;

    @Autowired
    public B(A a) {this.a = a;
    }

}

  B的构造函数上多了个@Autowired,参数是要注入的Bean;如果还想把C类型、D类型…的Bean注入进来,参数可以继续往后加。或者有2个Bean,有相同的接口,

import org.springframework.stereotype.Component;

@Component
public class Cat implements Animal {@Override
    public void sayName() {System.out.println("猫:喵喵");
    }

}
import org.springframework.stereotype.Component;

@Component
public class Dog implements Animal {@Override
    public void sayName() {System.out.println("狗:汪汪");
    }

}

  此时B,

import com.gs.spring_boot_demo.bean.Animal;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;

@Component
public class B {private Listlist;

    @Autowired
    public B(Listlist) {//list有2个元素,就是上面的那2个Bean
        //参数也可以是Map类型,key是Bean的名称,
        //value是Bean对象
        this.list = list;
    }

}

通过set方法

  还是A这个Bean,Bean B:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class B {private A a;

    //属性a的set方法上,添加@Autowired
    @Autowired
    public void setA(A a) {this.a = a;
    }

}

通过List属性、通过Map属性

  这2个类似,而且归根结底也是通过set方法注入;适用于注入多个Bean,并且这些Bean实现了同一接口;还是上面的Cat、Dog这2个Bean,Bean B:

import com.gs.spring_boot_demo.bean.Animal;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;

@Component
public class B {private Listlist;

    @Autowired
    public void setList(Listlist) {this.list = list;
    }

    //private Mapmap;
    //
    //@Autowired
    //public void setMap(Mapmap) {//    //key是Bean的名称,value是Bean对象
    //    this.map = map;
    //}

}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站栏目:Spring中Bean被注入的几种方式-创新互联
网站URL:http://myzitong.com/article/cdshej.html