spring学习笔记(一)——bean的装配
慕课网,spring入门,学习笔记
https://www.imooc.com/video/19053
https://www.imooc.com/video/3750
bean的配置项
id,class,scope,construtor arguments,properties,autowiring mode,lazy-init(是否懒加载),abstract(是否是抽象的不需要实例化),init-method,destroy-method
autowiring mode:自动装配模式
lazy-initialization mode:懒加载模式
initalization/destruction method:初始化/销毁方法
构造注入配置项:index,name,type,value,ref
设值注入配置项:name,value,ref
方法注入:lookup-method,依赖其他类的单例,实现每次请求,被依赖类有不同的实例
bean的作用域
singleton,单例,一个bean容器中只存在一份
prototype,每次请求(每次使用)创建新的实例,请求完成后释放实例,所以destroy方式不生效
request:每次http 请求创建一个实例,仅在当前request内有效
session:每次http请求创建,当前session内有效
global session:基于portlet的web中有效(portlet定义啦global session),如果是在web中,同session
web环境作用域:request,session,application(每个servetContext都会创建一个单独的实例),websocket(每个websocket连接都会创建一个单独的实例)
自定义作用域:
线程范围单例:SimpleThreadScope,在每个线程内部是单例,而不同线程中是不同的bean。
bean的生命周期
定义、初始化、使用、销毁
bean的懒加载
spring容器在创建容器时提前初始化scope=Singleton的bean。但是如果bean被标注lazy-init="true",那么该bean只在被需要时才被初始化。
<beans default-lazy-init="true" ……> 默认为该配置文件中所有单例开启懒加载
bean的初始化和销毁
全局默认初始化、销毁方法
<beans>标签中default-init-method,default-destroy-method。默认方法是可选的,即使配置了,也可以不定义。
在bean实例化后执行一些逻辑
- 使用init-method
- 让Bean实现InitializingBean接口
在bean销毁前执行一些逻辑
- 使用destroy-method
- 让Bean实现DisposableBean接口
同时使用默认方法、类自己的方法和接口方法时,先执行接口方法,后执行类的方法,默认方法不会执行。
bean的自动装配
<beans>配置项,default-autowire="byName"
resource和resourceloader
课程3-5
resourceloader参数前缀
bean的属性继承
- 从父类继承的属性
- 不是从父类继承的公共属性