Spring入门篇学习笔记(2)
来源:互联网 发布:淘宝店铺年费 编辑:程序博客网 时间:2024/06/05 15:10
以下学习笔记内容来自慕课网视频《Spring入门篇》
- 第三章 Spring Bean装配上
- 3-1 Bean的配置项及作用域
- 3-2 Bean的生命周期
- 3-3 Aware接口
- 3-4 自动装配Autowiring
- 3-5 ResourceResourceLoader
- 第三章 Spring Bean装配上
第三章 Spring Bean装配(上)
在Spring的IOC中把一切配置到IOC容器里的实体或对象都称为Bean
3-1 Bean的配置项及作用域
1. Bean的常用配置项
在使用的时候,理论上只有Class是必须的,其他的都可以不配置。但是如果想从Bean容器中得到某个类的实例,有两种方式,一种是通过ID来获取,一种是通过实例的类型来获取。
- Id
- 在整个IOC容器中,某个Bean的唯一标识
- Class
- Class指具体要实现的哪个类(包名.类名)
- Scope
- Bean的作用域
- Constructor arguments
- 构造器的参数,可用于Bean的构造器注入
- Properties
- Bean的一些属性,可用于设值注入
- Autowiring mode
- 自动装配模式
- lazy-initialization mode
- 懒加载模式
- Initialization/destruction method
- 初始化/销毁的方法
2. Bean的作用域scope
- singleton(Default):单例,指一个Bean容器中只存在一份。
- prototype:每次请求(每次使用)都会创建新的实例,destroy方式不生效。当请求完成后,实例将不再使用,知道被垃圾回收器回收。
- request:每次http请求创建一个实例且仅在当前request内有效。
- session:同上,每次http请求创建,当前session内有效
- global session:基于portlet的web中有效(portlet定义了global session),如果是在web中,同session。
例子:https://yunpan.cn/cBpG2up9FJRqx 访问密码 db7f
3-2 Bean的生命周期
Bean的生命周期分为四个部分:定义,初始化,使用,销毁。
1. Bean的定义:指在Spring的Bean配置文件中配置的Bean,定义了一个id以及一个class。
2. Bean的初始化:指当IOC容器ApplicationContext,在start启动时加载并配置文件中的Bean,生成Bean的实例。
3. Bean的使用:指在开发中取出Bean的实例,并调用它的方法。
4. Bean的销毁:指在Bean容器销毁时停止并销毁这个Bean容器内的所有Bean的实例。
Bean的初始化
初始化Bean的两种方法:
1. 实现org.springframework.beans.factory.InitializingBean接口,覆盖afterPropertiesSet方法
2. 配置Bean时设置init-method属性
Bean的销毁
Bean销毁的两种方式:
1. 实现org.springframework.beans.factory.DisposableBean接口,覆盖destory方法
2. 配置destroy-method
配置全局默认初始化、销毁方法
当Bean初始化和销毁的三种方式同时使用时,会先执行通过实现接口覆盖的方法,接着执行通过xml文件中属性配置的方法,最后全局配置的方法将不被执行。
例子:https://yunpan.cn/cBpG2up9FJRqx 访问密码 db7f
3-3 Aware接口
- Spring中提供了一些以Aware结尾的接口,实现了Aware接口的bean在被初始化之后,可以获取相应资源。
- 通过Aware接口,可以对Spring相应资源进行操作(一定要慎重)
- 为对Spring进行简单的扩展提供了方便的入口。
1. 一些Aware接口介绍
例子:https://yunpan.cn/cBpG2up9FJRqx 访问密码 db7f
3-4 自动装配(Autowiring)
1. Bean的自动装配种类
- No:默认值,不做任何操作。
- byname:根据属性名自动装配。此选项将检查容器并根据变量名查找属性id完全一致的bean,并将其与属性自动装配。
- byType:如果容器中存在一个与指定属性变量类型相同的bean,那么将与该属性变量自动装配;如果存在多个该类型的Bean,那么将抛出异常,并指出不能使用byType方式进行自动装配;如果没有找到相匹配的bean,则什么事都不发生。
- Constructor:与byType方式类似,不同之处在于它应用于构造器参数。如果容器中没有找到与构造器参数类型一致的bean,那么将抛出异常。
- 官方文档
2. 例子
https://yunpan.cn/cBpG2up9FJRqx 访问密码 db7f
3-5 Resource&ResourceLoader
1. Resources
- 针对于资源文件的统一接口
- Resources的种类。
- UrlResource:URL对应的资源,根据一个URL地址即可构建。
- ClassPathResource:获取类路径下的资源文件。
- FileSystemResource:获取文件系统里面的资源。
- ServletCotextResource:ServletContext封装的资源呢,用于访问ServletContext环境下的资源。
- InputStreamResource:针对于输入流封装的资源。
- ByteArrayResource:针对于字节数组封装的资源。
2. ResourceLoader
ResourceLoader的资源前缀类型
3. 例子
- https://yunpan.cn/cBpG2up9FJRqx 访问密码 db7f
相关文件在:cw.springtest.resource包中
- Spring入门篇学习笔记(2)
- spring入门篇-学习笔记
- Spring学习笔记-入门篇
- spring 入门学习笔记
- Spring入门-学习笔记
- Spring入门学习笔记
- Spring入门学习笔记
- Spring MVC学习笔记 1:入门篇
- Spring入门篇学习笔记(1)
- Spring入门篇学习笔记(3)
- Spring Boot学习笔记-入门篇
- Spring学习笔记:2-Spring中IoC的入门实例
- spring学习笔记 aop入门
- [Spring入门学习笔记][maven]
- Spring入门简介(学习笔记)
- Spring 思想入门学习笔记
- spring-boot入门学习笔记
- spring-boot入门学习笔记
- linux命令详解(arm交叉编译器)
- VC++多线程tcp connect扫描
- NSOperationQueue
- Linux多台主机批量执行命令
- 【SSH】Struts2配置文件学习
- Spring入门篇学习笔记(2)
- 生成rdp文件中的密码字串
- EnumWindows 传递自定义参数实例
- 剑指offer 5题 【链表】从尾到头打印链表
- SecureCRT不能连接linux服务器
- 怎样在java虚拟机中理解Java并发
- 最小化所有窗口(模拟显示桌面)
- 实现静默安装和卸载应用
- Docker网络方案初探