Spring Bean,什么是Bean?
什么是Bean?
Spring Bean是被实例的,组装的及被Spring 容器管理的Java对象。
Spring 容器会自动完成 @bean对象的实例化。
创建应用对象之间的协作关系的行为称为:装配(wiring),这就是依赖注入(DI)的本质。
Spring 三种配置方案
1.在XML中进行显示配置
2.使用Java代码进行显示配置
3.隐式的bena发现机制和自动配置 (首选推荐)
一、自动化配置bean
1.组件扫描(component scanning):Spring 会自动发现应用上下文中所创建的bean。
2.自动装配(autowiring):Spring会自动满足bean之间的依赖。
package com.stalkers.impl;
import com.stalkers.ICompactDisc;
import org.springframework.stereotype.Component;
/**
* Jay同名专辑
* Created by stalkers on 2016/11/17.
*/
@Component
public class JayDisc implements ICompactDisc {
private String title = "星晴";
public void play() {
System.out.println(title + ":一步两步三步四步,望着天上星星...");
}
}
Component注解作用:
表明该类会作为组件类
不过,组件扫描默认是不开启用的,我们还需要显示配置下Spring,从而命令它去寻找到 @Component注解的类,并为其创建 bean。
通过为bean添加注解实现自动装配
如果所有对象都是独立的,彼此之间没有任何依赖,那么使用组件扫描就能自动化装配bean。
但是实际工作中,很多对象会依赖其他对象完成任务。这时候就需要能够将组件扫描得到bean和他们依赖装配在一起。这就是自动装配(autowiring)
@Component
public class CDPlayer implements IMediaPlayer {
private ICompactDisc cd;
@Autowired
public CDPlayer(ICompactDisc cd) {
this.cd = cd;
}
public void play() {
System.out.println("cd Play:");
cd.play();
}
}
Autowired的多种方式
1.构造器注解(constructor)
2.属性setter注解
3.field注解
不管使用上面三种的那种方法,Spring都会满足声明的依赖。