Spring事务机制及bean生命周期

Spring的的事务传播机制

  • REQUIRED(默认):支持使用当前事务,如果当前事务不存在,创建一个新事务。
  • SUPPORTS:支持使用当前事务,如果当前事务不存在,则不使用事务。
  • MANDATORY:强制,支持使用当前事务,如果当前事务不存在,则抛出Exception。
  • REQUIRES_NEW:创建一个新事务,如果当前事务存在,把当前事务挂起。
  • NOT_SUPPORTED:无事务执行,如果当前事务存在,把当前事务挂起。
  • NEVER:无事务执行,如果当前有事务则抛出Exception。
  • NESTED:嵌套事务,如果当前事务存在,那么在嵌套的事务中执行。如果当前事务不存在,则表现跟REQUIRED一样。

spring bean生命周期

bean定义:个人理解把Bean理解为类的代理或代言人,作用为实例化我们的类对象
总的步骤可以分为这四步

  • 初始化
  • 属性注入
  • 实例化
  • 销毁
    其中细分可以为
  • 调用Bean的构造函数(或者工厂方法)实例化Bean.
  • 对Bean的成员属性赋值.
  • 如果Bean实现了BeanNameAware,调用Bean的setBeanName方法.
  • 如果Bean实现了BeanFactoryAware,调用Bean的setBeanFactory方法.
  • 如果Bean实现了ApplicationContextAware,调用Bean的setApplicationContext方法.
  • 如果容器中配置了BeanPostProcessor,调用BeanPostProcessor的postProcessBeforeInitialization方法
  • 如果Bean实现了InitializingBean,调用Bean的afterPropertiesSet方法.
  • 如果Bean配置了init-method方法,调用init-method配置的Bean方法.
  • 如果容器中配置了BeanPostProcessor,调用BeanPostProcessor的postProcessAfterInitialization方法(即后置处理器)
  • Bean处于可以使用的状态.
  • 容器销毁
  • 如果Bean实现了DisposableBean,调用Bean的destroy方法.
  • 如果Bean配置了destroy-method方法,调用destroy-method配置的Bean的方法
posted @ 2020-04-30 21:53  遗失的岁月  阅读(519)  评论(0编辑  收藏  举报