Spring中Bean被注入的几种方式-创新互联
说明
通过构造方法
通过set方法
通过List属性、通过Map属性
网站栏目:Spring中Bean被注入的几种方式-创新互联
文章链接:http://pwwzsj.com/article/cdshej.html
一共有5种方式:
成都创新互联公司于2013年开始,是专业互联网技术服务公司,拥有项目成都网站制作、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元辽中做网站,已为上家服务,为辽中各地企业和个人服务,联系电话:028-86922220 1. @Autowired+属性,被注入
2. 通过构造方法,被注入
3. 通过set方法,被注入
4. 通过List属性,被注入
5. 通过Map属性,被注入
这种是最普遍的,此时有一个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被注入的几种方式-创新互联
文章链接:http://pwwzsj.com/article/cdshej.html