乐趣区

关于bean:简述-Bean

什么是 Bean

对于一般的 Java 对象,当 new 的时候创建对象,而后该对象就可能应用了。一旦该对象不再被应用,则由 Java 主动进行垃圾回收。

而 Spring 中的对象是 bean,bean 和一般的 Java 对象没啥大的区别,只不过 Spring 不再本人去 new 对象了,而是由 IoC 容器去帮忙咱们实例化对象并且治理它,咱们须要哪个对象,去问 IoC 容器要即可。IoC 其实就是解决对象之间的耦合问题,Spring Bean 的生命周期齐全由容器管制。

简而言之,bean 是由 Spring IoC 容器实例化、组装和治理的对象。

什么是 Spring Bean 的生命周期

• 一般的 Java 对象生命周期:

实例化

该对象不再被应用时通过垃圾回收机制进行回收

• Spring Bean 的生命周期:

实例化 Instantiation

属性赋值 Populate

初始化 Initialization

销毁 Destruction

Spring Bean 的生命周期的扩大点

• Bean 本身的办法

实例化 -> 属性赋值 -> 初始化 -> 销毁

• 容器级的办法(BeanPostProcessor 一系列接口)

次要是后处理器办法,比方 InstantiationAwareBeanPostProcessor、BeanPostProcessor 接口办法。

这些接口的实现类是独立于 Bean 的,并且会注册到 Spring 容器中。

在 Spring 容器创立任何 Bean 的时候,这些后处理器都会产生作用。

• Bean 级生命周期办法

能够了解为 Bean 类间接实现接口的办法,比方 BeanNameAware、BeanFactoryAware、ApplicationContextAware、InitializingBean、DisposableBean 等办法,这些办法只对以后 Bean 失效。

如上为 Spring Bean 常识的回顾,如果遗记了,没关系,让咱们在代码中寻找记忆。

代码性能介绍

Application.java 启动类,实例化 spring 容器

AnnotationConfig.java 配置类,指定扫描门路

AnnotationApplicationContext.java 外围类,bean 创立、获取

BeanDefinition.java BeanDefinition 定义

SqBeanPostProcessor.java 后置处理器,初始化前后对 bean 进行干涉

User.java 业务类,用户对象,用户信息设置

UserService.java 业务类,用户 service,实现 BeanNameAware、InitializingBean

spring 注解模仿

Autowired.java

Component.java

Lazy.java

Scope.java

ComponentScan.java

spring 接口模仿

BeanNameAware.java

BeanPostProcessor.java

InitializingBean.java

退出移动版