spring生命周期

spring生命周期:

  • 1.Bean的建立 
    • 由BeanFactory读取Bean定义文件,并生成各个实例
    • 如果是默认的单例模式,那么在加载spring的配置文件的时候,会将bean实例化,放进Spring的IOC容器中。
    • 可以利用无参构造函数追踪实例化时机。
  • 2.设置属性(属性注入) 
    • 注入属性值,对应的属性需要有set方法
    • 值加载spring配置文件时,会实例化User对象,在调用无参构造方法实例化对象后,紧接着调用了setUserName方法,为userName属性注入值
  • 3.BeanNameAware接口的setBeanName(): 
    • 可以获取正在被实例化的bean的id的值
    • 配置文件中有几个User类型的bean,就会打印几个id值
  • 4.BeanFactoryAware的setBeanFactory(): 
    • 如果Bean实现BeanFactoryAware接口,则执行setBeanFactory(),可以获取到beanFactory,即bean工厂。我们可以清晰的看到bean工厂中的所有bean。
  • 5.ApplicationContextAware接口: 
    • ApplicationContextAware接口获取ApplicationContext。
    • User类实现了接口ApplicationContextAware并复写了setApplicationContext方法。Spring初始化的时候就将ApplicationContext装配好了,那么项目中就可以直接使用applicationContext.getBean(“beanId”);
  • 6.BeanPostProcessor的processBeforeInitialization(): 
    • BeanPostProcessor(后置处理器)接口作用是: 
      • 如果我们需要在Spring容器完成Bean的实例化、配置和其他的初始化前后添加一些自己的逻辑处理,我们就可以定义一个或者多个BeanPostProcessor接口的实现,然后注册到容器中。
      • 如果有任何BeanPostProcessors实例与Bean实例关联,则执行BeanPostProcessors实例processBeforeInitialization()
  • 7.Bean定义文件中定义init-method初始化:
<bean id="userSecond" class="com.hyq.entity.User" init-method="userInit">
    <property name="userName" value="hyq"></property>
</bean>
 
 
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3
  • 8.BeanPostProcessors的processaAfterInitialization(): 
    • Spring在设置完一个bean所有的合作者后,会检查bean是否实现了InitializingBean接口,如果实现就调用bean的afterPropertiesSet方法。
  • 9.DisposableBean的destroy(): 
    • bean销毁。在容器关闭时,如果Bean类实现DisposableBean接口,则执行destroy()。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值