13.Bean的生命周期

Bean的生命周期

大致流程: 先创建(new…),然后初始化(赋初值), … ,销毁
这里我们只研究初始化和销毁(创建 使用平常都在用)

  1. 方法一(适用于:@Bean+返回值方式):

init destroy

xml形式:

  • 配置在的属性: init-method=“myInit” destroy-method=“myDestroy”
  • 其中myInit和myDestroy是在实体类中自己写的方法名

注解形式:

  • 配置@Bean注解的属性:
    @Bean(value="stu",initMethod = "myInit",destroyMethod = "myDestroy")

  • __注意:__IoC容器在初始化时,单例时会自动创建对象(构造方法) ->然后才init ->…使用…->当容器关闭(ac.close())时调用destroy

  1. 方法二(适用于: 三层注解(也叫功能性注解)):

三层注解包含:三层(@Controller,@Service,@Repository[Dao层],@Component)、功能性类

@Component为不确定三层具体用哪个来加入到容器当中时可以用这个代替,也就是说除了那三个特指的类以外都可以用@Component注解,例如功能性类(转换器等)

三层组件: 扫描器 + 三层注解(4个)

JAVA规范 :JSR250

将响应组件加入 @Component注解、 给初始化方法加@PostConstruct、给销毁方法加@PreDestroy

  • @PostConstruct:相当于方法一的init
  • @PreDestroy:相当于方法一的destroy

注意:如果要获取@Component注解中的bean,那么该Bean的名字就是@Component(value=“xxx”)的value值

  1. 方法三:实现两个接口:适用于三层组件(扫描器+三层组件)
  • InitializingBean初始化
  • DisposableBean 销毁

初始化:只需要实现InitializingBean中的afterPropertiesSet()方法
销毁:实现DisposableBean 中的destroy()方法

__问题:__要在Spring IOC容器中操作:操作方式是什么? 对象:Bean+返回 ,三层组件

  • 如果是注解形式,随便写一个方法,然后加上相应注解即可
  • 如果是接口形式,必须实现接口中规定的方法
  1. 方法四: (给容器中的所有Bean加初始化、销毁)一个接口
    • 接口:适用于三层组件
    • 接口BeanPostProcessor:拦截了所有中容器的Bean
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值