1. 工厂Bean
Spring中有两种Bean,一种为普通Bean,另一中为工厂Bean
1.1 普通Bean
在配置文件中定义bean类型就是返回类型
1.2 工厂Bean
工厂bean在配置文件中定义的bean类型和返回类型不同
-
创建类,作为工厂bean,实现接口FactoryBean
public class MyFactoryBean implements FactoryBean<User> { @Override public User getObject() throws Exception { User user = new User(); user.setId("1"); return user; } @Override public Class<?> getObjectType() { return null; } }
-
实现接口的方法,在实现的方法中定义返回的类型
<bean id="myBean" class="com.yang.pojo.MyFactoryBean"></bean>
2. Bean的作用域
2.1 单例对象
Spring中默认的bean是单例对象
2.2 多例对象
在bean的
scope
属性设置为prototype即变为多例对象
2.3 两者区别
- singleton单实例,prototype 多实例
- 设置scope值是singleton时候,加载spring配置文件时候就会创建单实例对象
- 设置scope值是prototype时候,不是在加载spring 配置文件时候创建对象,在调用getBean方法时候创建多实例对象。
3. Bean的生命周期
生命周期:对象创建到销毁的过程
- 通过构造器创建bean实例(无参数构造)
- 为bean的属性设置值和对其他bean引用(调用set方法)
- 调用bean的初始化的方法(需要进行配置初始化的方法)
- bean可以使用了(对象获取到了)
- 当容器关闭时候,调用bean的销毁的方法(需要进行配置销毁的方法)