本文共 1504 字,大约阅读时间需要 5 分钟。
目录
Spring Bean 是被实例化的、组装的及被Spring 容器管理的Java 对象。
Spring 容器会自动完成@bean对象的实例化。
建应用对象之间的协作关系的行为称为:装配(wiring),这就是依赖注入的本质。
这种也是我们最常见的使用姿势,一般就是在类上添加@Component
, @Service
等注解(@Controller
表示提供http接口的bean, @Configuration
表示配置类Bean),添加这些注解的类,会被Spring 容器扫描加载到,自动生成单例的Bean。
这种方式,主要是结合Configuration
来定义bean,首先是声明一个配置类,然后再配置类中,通过返回bean对象的方法形式来声明bean。
@Datapublic class ConfigDemoBean { private String type = "ConfigDemoBean"; public String getName(String name) { return name + " _" + type; }}@Configurationpublic class BeanLoadConfig { @Bean public ConfigDemoBean configDemoBean() { return new ConfigDemoBean(); }}
除了以上2中常见的方式之外,在抽象框架层面,还有工厂类方式:FactoryBean
以上是如果创建一个Bean,创建完之后如何使用呢?
将注解@Autowired
或者@Resource
添加到成员变量上,即表示这个成员变量会由Spring容器注入对应的Bean对象。
@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。
除了成员变量之外,@Autowired 和@Resource 这两个注解还可以放在 Setter 方法上。
private FacDemoBean facDemoBean;@Autowiredprivate void setFacDemoBean(FacDemoBean facDemoBean) { this.facDemoBean = facDemoBean;}
在构造方法中,传入Bean对象来初始化。
public class DemoController { private AnoDemoBean anoDemoBean; public DemoController(AnoDemoBean anoDemoBean) { this.anoDemoBean = anoDemoBean; }}
4 Bean的生命周期
什么是Bean的生命周期呢?就是Bean从创建到销毁的过程。Bean 的生命周期,统一是由 Spring IoC 容器来进行管理的。
Spring 在实例化 Bean 的时候,会先调用它的构造函数,进行 Bean的实例化,然后进行 Bean的初始化。这个时候,
然后就开始利用 Bean进行业务逻辑处理,最后容器正常关闭,Spring 开始销毁 Bean。
参考:
转载地址:http://ynlgi.baihongyu.com/