Bean是什么?
- Spring Bean是被实例的,组装的及被Spring 容器管理的Java对象。
- Spring 容器会自动完成@bean对象的实例化。
- 创建应用对象之间的协作关系的行为称为:装配(wiring),这就是依赖注入的本质。
Bean的生命周期
- 在Spring中要得到一个Bean对象,首先Spring对象会对类对象进行实例化,然后检查该对象中的有@Autowired或者@Resource标注的变量,对其进行赋值,这一步叫做属性填充。
- 做完属性填充后,Spring会对实例化的类对象进行初始化。就是检查类有没有实现InitializingBean接口并实现其afterPropertiesSet方法,或者检查其有没有使用@PostConstruct注解标注的方法,如果有则调用这些方法完成初始化操作。
- 然后检查该类有没有进行AOP织入。如果有Spring会生成这个类的代理对象为Bean对象;如果没有,则直接生成Bean对象。
- Bean对象的销毁,可以通过两种方式实现调用销毁方法:
- 第一种是实现DisposableBean接口重写destroy()方法;
- 第二种是使用@PreDestroy注解,自定义销毁方法