JavaWeb框架复习笔记-Spring(Bean的种类、作用域、生命周期)

Bean种类

1.普通bean,最简单的bean,spring直接创建对象并返回
配置形式一般如下:
在这里插入图片描述
2.FactoryBean,一个特殊的bean,它具有工厂的能力,即能生成bean,但是是特殊的bean
使用方式
bean必须使用 FactoryBean接口,此接口提供方法 getObject() 用于获得特定bean。

3.FactoryBean和BeanFactory的区别
BeanFactory:工厂,用于生成任意bean。

FactoryBean:特殊bean,用于生成另一个特定的bean。例如:ProxyFactoryBean ,此工厂bean用于生产代理,并获得代理对象实例,例如AOP的使用

作用域

1.singleton:单例,再springIOC容器中只存在一个bean实例,这是一个默认值

2.prototype:原型,多例,每次从容器中都将获得一个新的bean

3.request,请求,每次http请求都会创建一个新的bean,但只适用于wab项目

4.session,会话,同一个http session共享一个bean,但只适用于wab项目

测试单例
接口
在这里插入图片描述
实现类
在这里插入图片描述
配置
在这里插入图片描述
写个测试类
在这里插入图片描述
在这里插入图片描述
测试原型(多例)
修改配置文件即可
在这里插入图片描述
运行一次
在这里插入图片描述

生命周期

Spring IOC容器可以管理Bean的生命周期,允许在Bean生命周期的特定点执行定制的任务
1.创建Bean实例

2.调用Bean的初始化方法

3.Bean可以使用了

4.当容器关闭时,调用Bean的销毁方法

写个测试类测试一下
接口
在这里插入图片描述
实现类
在这里插入图片描述
配置
在这里插入图片描述
测试类
在这里插入图片描述
在这里插入图片描述
这里要注意一个小问题,这个bean必须是单例的,这样才能执行销毁方法

关于Bean的后置处理器

这是spring 提供一种机制,只要实现接口BeanPostProcessor,并将实现类提供给spring容器,它就会自动执行

添加Bean后置处理器后,SpringIOC容器对Bean的生命周期管理的过程为:  
1.创建 Bean 实例

2.将 Bean 实例传递给 Bean 后置处理器的 postProcessBeforeInitialization 方法

3.调用 Bean 的初始化方法

4.将 Bean 实例传递给 Bean 后置处理器的 postProcessAfterInitialization方法

5.Bean 可以使用了

6.当容器关闭时, 调用 Bean 的销毁方法

先去看一SpringAPI关于这个BeanPostProcessor类的方法使用详情
在这里插入图片描述
编写一个实现类
在这里插入图片描述
去配置文件配置这个类
在这里插入图片描述
测试效果
在这里插入图片描述
在这里插入图片描述
观察结果可以延申出,假如我们在前置方法或者后置方法把传入的bean变成bean的代理对象,这样我们就可以做AOP操作,例如事务操作

现在改造一下这个类,让它返回一个代理对象
在这里插入图片描述
在这里插入图片描述

这里最难理解就是这个动态代理,我会在java基础类那里写关于这个动态代理的知识点

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值