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。

spring学习笔记(一)——bean的装配

spring学习笔记(一)——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"

spring学习笔记(一)——bean的装配

spring学习笔记(一)——bean的装配

resource和resourceloader

课程3-5

spring学习笔记(一)——bean的装配

spring学习笔记(一)——bean的装配

resourceloader参数前缀

spring学习笔记(一)——bean的装配

 

bean的属性继承

  • 从父类继承的属性

spring学习笔记(一)——bean的装配

  • 不是从父类继承的公共属性

spring学习笔记(一)——bean的装配