专栏首页happyJaredSpring的 Bean 注解和生命周期

Spring的 Bean 注解和生命周期

Spring 的 bean 注解声明

使用 @Autowired 注解自动装配 bean,要想把类标识成可用于 @Autowired 注解自动装配的 bean 的类,采用以下注解可实现:

  • @Component :通用的注解,可标注任意类为 Spring 组件。如果一个 Bean 不知道属于哪个层,可以使用 @Component 注解标注。
  • @Repository : 对应持久层即 Dao 层,主要用于数据库相关操作。
  • @Service : 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao 层。
  • @Controller : 对应 Spring MVC 控制层,主要用户接受用户请求并调用 Service 层返回数据给前端页面。

Spring 的 bean 生命周期

  • Bean 容器找到配置文件中 Spring Bean 的定义。
  • Bean 容器利用 Java Reflection API 创建一个 Bean 的实例。
  • 如果涉及到一些属性值 利用 set() 方法设置一些属性值。
  • 如果 Bean 实现了 BeanNameAware 接口,调用 setBeanName()方法,传入 Bean 的名字。
  • 如果 Bean 实现了 BeanClassLoaderAware 接口,调用 setBeanClassLoader() 方法,传入 ClassLoader 对象的实例。
  • 如果 Bean 实现了 BeanFactoryAware 接口,调用 setBeanClassLoader() 方法,传入 ClassLoader 对象的实例。
  • 与上面的类似,如果实现了其他 *.Aware 接口,就调用相应的方法。
  • 如果有和加载这个 Bean 的 Spring 容器相关的 BeanPostProcessor 对象,执行 postProcessBeforeInitialization() 方法
  • 如果 Bean 实现了 InitializingBean 接口,执行 afterPropertiesSet() 方法。
  • 如果 Bean 在配置文件中的定义包含 init-method 属性,执行指定的方法。
  • 如果有和加载这个 Bean 的 Spring 容器相关的 BeanPostProcessor 对象,执行postProcessAfterInitialization() 方法
  • 当要销毁 Bean 的时候,如果 Bean 实现了 DisposableBean 接口,执行 destroy() 方法。
  • 当要销毁 Bean 的时候,如果 Bean 在配置文件中的定义包含 destroy-method 属性,执行指定的方法。

Spring Bean 生命周期

Spring Bean 生命周期

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring Bean 生命周期流程

    happyJared
  • Spring Aware 接口

    有些时候,在 Bean 的初始化中,需要使用 Spring 框架自身的对象来执行一些操作,比如获取 ServletContext 的一些参数,获取 Applic...

    happyJared
  • Spring bean 初始化和销毁

    有时需要在 Bean 属性值 set 好之后和 Bean 销毁之前做一些事情,比如检查 Bean 中某个属性是否被正常的设置好值。Spring 框架提供了多种方...

    happyJared
  • 谈谈 Spring Bean 的生命周期和作用域?

    首先,创建 Bean 会经过一系列的步骤,主要包括: 实例化 Bean 对象。 设置 Bean 属性。 如果我们通过各种 Aware 接口声明了依赖关系,...

    葆宁
  • Spring扩展点总结(持续更新)

    左手java右手go
  • Spring Bean 生命周期流程

    happyJared
  • Spring中Bean及@Bean的理解

    1、Java面向对象,对象有方法和属性,那么就需要对象实例来调用方法和属性(即实例化);

    Java编程指南
  • Spring学习笔记3_Bean 获取与实例化

    本章目录 Spring学习笔记3_Bean 获取与实例化 1.ApplicationContext与BeanFactory关系 2.Bean的实例化方式 ...

    Java学习
  • 详述 Spring 中 Bean 的生命周期

    对于普通的 Java 对象,当我们使用new关键字创建对象的时候,如果它没有任何引用,则其会被垃圾回收机制回收。而由 Spring IoC 容器托管的对象,它们...

    CG国斌
  • Spring解析,加载及实例化Bean的顺序(零配置)

    在使用Spring时,Bean之间会有些依赖,比如一个Bean A实例化时需要用到Bean B,那么B应该在A之前实例化好。很多时候Spring智能地为我们做好...

    用户4143945

扫码关注云+社区

领取腾讯云代金券