Spring 中创建 Bean 的过程通常分为以下几步:
定位:Spring 通过配置文件或者注解等方式定位要创建的 Bean,比如通过 @ComponentScan 注解或者 XML 配置文件中的 <bean> 元素等方式。
加载:Spring 根据定位到的 Bean 的信息,使用反射机制创建 Bean 实例,并且存储在 Spring 容器中。
实例化:当 Bean 实例被创建后,Spring 会实例化 Bean,这通常包括 Bean 实例的初始化、属性注入和依赖注入等操作。
初始化:在 Bean 实例化后,Spring 会调用 Bean 的初始化方法,通常是调用 @PostConstruct 注解标注的方法或者实现 InitializingBean 接口的 afterPropertiesSet() 方法。
属性注入:在 Bean 实例化后,Spring 会自动注入 Bean 的属性,这通常包括基本类型属性和对象类型属性。
依赖注入:在属性注入完成后,Spring 会自动完成依赖注入,即将其他 Bean 实例注入到当前 Bean 中,这通常是通过 @Autowired 注解实现的。
后置处理器:在 Bean 的初始化过程中,Spring 会自动调用所有注册的 BeanPostProcessor 的方法,这通常用于增强 Bean 的功能或者执行其他逻辑。
完成:当 Bean 的初始化过程完成后,Spring 就会将 Bean 实例交给应用程序使用。
需要注意的是,不是所有的 Bean 都需要执行所有的步骤,具体需要执行哪些步骤,取决于 Bean 的定义和配置。比如,如果 Bean 没有实现 InitializingBean 接口,那么 Spring 就不会调用其 afterPropertiesSet() 方法。
网友评论