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的IOC中把一切配置到IOC容器里的实体或对象都称为Bean

3-1 Bean的配置项及作用域

1. Bean的常用配置项

在使用的时候,理论上只有Class是必须的,其他的都可以不配置。但是如果想从Bean容器中得到某个类的实例,有两种方式,一种是通过ID来获取,一种是通过实例的类型来获取。

  1. Id
    • 在整个IOC容器中,某个Bean的唯一标识
  2. Class
    • Class指具体要实现的哪个类(包名.类名)
  3. Scope
    • Bean的作用域
  4. Constructor arguments
    • 构造器的参数,可用于Bean的构造器注入
  5. Properties
    • Bean的一些属性,可用于设值注入
  6. Autowiring mode
    • 自动装配模式
  7. lazy-initialization mode
    • 懒加载模式
  8. Initialization/destruction method
    • 初始化/销毁的方法

2. Bean的作用域scope

  1. singleton(Default):单例,指一个Bean容器中只存在一份。
  2. prototype:每次请求(每次使用)都会创建新的实例,destroy方式不生效。当请求完成后,实例将不再使用,知道被垃圾回收器回收。
  3. request:每次http请求创建一个实例且仅在当前request内有效。
  4. session:同上,每次http请求创建,当前session内有效
  5. 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方法
Bean初始化1
2. 配置Bean时设置init-method属性
Bean初始化2

Bean的销毁

Bean销毁的两种方式:
1. 实现org.springframework.beans.factory.DisposableBean接口,覆盖destory方法
Bean销毁1
2. 配置destroy-method
Bean销毁2

配置全局默认初始化、销毁方法

配置全局默认初始化、销毁

当Bean初始化和销毁的三种方式同时使用时,会先执行通过实现接口覆盖的方法,接着执行通过xml文件中属性配置的方法,最后全局配置的方法将不被执行。
例子:https://yunpan.cn/cBpG2up9FJRqx 访问密码 db7f
这里写图片描述

3-3 Aware接口

  • Spring中提供了一些以Aware结尾的接口,实现了Aware接口的bean在被初始化之后,可以获取相应资源。
  • 通过Aware接口,可以对Spring相应资源进行操作(一定要慎重)
  • 为对Spring进行简单的扩展提供了方便的入口。

1. 一些Aware接口介绍
Aware接口1

Aware接口2

Aware接口3

例子: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包中

0 0
原创粉丝点击