Spring听课笔记(专题二)
第3章 Spring Bean的装配(上)
3-1:配置项及作用域

1.Bean的配置项:
-- Id
-- Class (这个必须,其他的都可以不配置)
-- Scope (作用域)
-- Constructor arguments (属性注入: 构造器注入)
-- properties (属性注入:设值注入)
-- Autowired mode(自动装配模式)
-- lazy-initialization mode (懒加载模式)
-- Initialization/destruction method (初始化和销毁)
2. 获取方式
-- byName (要求被获取的bean有id)
-- byType (要求被获取的bean有class,id可有可无)
3. bean的作用域
-- singleton: 单例,一个Bean容器中只存在一份(默认)
-- prototype: 每次请求(每次使用)创建新的实例,destroy方式不生效
-- request: 每次http请求创建一个实例且仅在当前request内有效
-- session: 同上,每次http请求创建,当前session内有效
-- global session:基于portletde的web中有效(portlet定义了global session), 如果在 web中,同session (适合多个子系统)
如:使用了singleton,那么Bean容器中只有一个

3-2 Bean的生命周期:
1.生命周期:定义 --> 初始化 --> 使用 --> 销毁
2.初始化的两种方式:
-- 实现 org.springframework.beans.factory.InitializingBean接口,覆盖afterPropertiesSet方法

-- XML配置init-method:

3.销毁的两种方法
-- 实现 org.springframework.beans.factory.DisposableBeans接口,覆盖destroy方法

-- 配置 destroy-method

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

5. 三种配置初始化、销毁方法的总结
(接口 > 配置文件 ) > 全局
实现接口的初始化和销毁先于在配置文件中配置的初始化和销毁方法,他们都会覆盖掉全局配置的这些方法,全局的配置的方法不执行。配置了全局的初始化和销毁方法,即使没有实现这些方法,也不会报错。另外两种方法配置了就必须实现,否则会报错
3-3 Aware接口
1.概述
-- Spring中提供了一些以Aware结尾的接口,实现了Aware接口的bean在被初始化之后,可以获取相应的资源
-- 通过Aware接口,可以对Spring相应资源进行操作(一定要慎重)
-- 为对Spring进行简单的扩展提供了方便的入口
2.常见接口



举例:ApplicationContextAware:Bean类实现该接口,通过该接口提供的方法,可以直接获取spring上下文,而不用我们自己手动创建,也可以利用拿到的context去判断下某些bean是否存在
xml:

Java:

JUnit

结果

3-4 Bean的自动装配
0.概述

1). 被装配对象

2). 装配对象

3). xml配置

4).JUnit测试

5).结果

3-5 Resource
1. Resource:针对于资源文件的统一接口
-- UrlResource: URL对应的资源,根据一个URL地址即可构建
-- ClassPathResource : 获取类路径下的资源文件
-- FileSystemResource : 获取文件系统里面的资源
-- ServletContextResource : ServletContext封装的资源,用于访问ServletContext环境下的资源
-- InputStreamResource : 针对于输入流封装的资源
-- ByteArrayResource : 针对于字节数组封装的资源
2. ResourceLoader: 所有的application contexts都实现了ResourceLoader接口,因此所有的application contexts都可以被用作获取Resource实例

前缀类型:

3. 例子

MoocResource实现了ApplicationContextAware接口,所以通过setApplicationContext方法获取到applicationContext,然后就可以利用他再resource方法中获取资源了。
Spring听课笔记(专题二)的更多相关文章
- Spring听课笔记(专题二下)
第4章 Spring Bean基于注解的装配 4.1 Bean的定义及作用域的注解实现 1. Bean定义的注解 -- @Component是一个通用注解,可用于任何bean -- @Reposito ...
- Spring听课笔记(专题一)
Spring入门课程:https://www.imooc.com/learn/196 第0章: Spring是为解决企业应用程序开发复杂性而创建的一个Java开源框架,应用非常广泛.业内非常流行的SS ...
- Spring使用笔记(二)Bean装配
Bean装配 Spring提供了3种装配机制: 1)隐式的Bean发现机制和自动装配 2)在Java中进行显示装配 3)在XML中进行显示装配 一)自动化装配 1.指定某类为组件类: @Compone ...
- Spring学习笔记(二)——Spring相关配置&属性注入&Junit整合
一.Spring的相关配置 1.1 Bean元素 class属性:被管理对象的完整类名 name属性:给Bean起个名字,能重复,能使用特殊字符.后来属性 id属性:给Bean起个名字,不能重复,不能 ...
- Spring 学习笔记(二)
一.Spring 中的bean配置 –配置形式:基于 XML 文件的方式:基于注解的方式 –Bean 的配置方式:通过全类名(反射).通过工厂方法(静态工厂方法 & 实例工厂方法).Fac ...
- Spring学习笔记(二) 初探Spring
版权声明 笔记出自<Spring 开发指南>一书. Spring 初探 前面我们简单介绍了 Spring 的基本组件和功能,现在我们来看一个简单示例: Person接口Person接口定义 ...
- Spring听课笔记(tg)AOP
好文:https://blog.csdn.net/javazejian/article/details/56267036 通过一个实例来理解 1. 需求:实现算术计算器,可以加减乘除,同时记录日志 ...
- Spring学习笔记之二----基于XML的Spring AOP配置
在Spring配置文件中,通常使用<aop:config>元素来设置AOP,其中应包括: <aop:aspect>指定aspect,aspect是一个POJO类,包含了很多的a ...
- (转) Spring框架笔记(二十五)——NamedParameterJdbcTemplate与具名参数(转)
在经典的 JDBC 用法中, SQL 参数是用占位符 ? 表示,并且受到位置的限制. 定位参数的问题在于, 一旦参数的顺序发生变化, 就必须改变参数绑定. 在 Spring JDBC 框架中, 绑定 ...
随机推荐
- maven 父子项目 pom
父项目 <!--项目 id--> <artifactId>expressway-cloud-travel</artifactId> <!-- 子模块--> ...
- java注解学习笔记总结
注解的理解 ① jdk 5.0 新增的功能 ② Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加载, 运行时被读取, 并执行相应的处理.通过使用 Annotation,程序 ...
- 基础篇:JAVA原子组件和同步组件
前言 在使用多线程并发编程的时,经常会遇到对共享变量修改操作.此时我们可以选择ConcurrentHashMap,ConcurrentLinkedQueue来进行安全地存储数据.但如果单单是涉及状态的 ...
- Hive 中的四种排序详解,再也不会混淆用法了
Hive 中的四种排序 排序操作是一个比较常见的操作,尤其是在数据分析的时候,我们往往需要对数据进行排序,hive 中和排序相关的有四个关键字,今天我们就看一下,它们都是什么作用. 数据准备 下面我们 ...
- linux awk基本语法命令总结
一.基本用法 文本内容准备 2 this is a test 3 Are you like awk This's a test 10 There are orange,apple,mongo 用法一: ...
- 初学VBA
一个最基本的VBA程序 Sub test() //宏开始 Dim ge As Range //定义变量 For Each ge In Range("a1:a10") //从a1到a ...
- Eplan P8 2.7 加密狗 感叹号 解决方法
Eplan安装完加密狗后一直感叹号异常,最近也是查了很多办法,最后发现是少了个驱动的原因. 就是上面这个驱动,这里放上驱动链接:https://lanzous.com/id5gi8f ,或者随便找一个 ...
- C语言实现九大排序算法
C语言实现九大排序算法 直接插入排序 折半插入排序 希尔排序 冒泡排序 快速排序 直接选择排序 堆排序 归并排序 基数排序 C语言实现九大排序算法 直接插入排序 将数组分为两个部分,一个是有序部分,一 ...
- 【Java基础】面向对象下
面向对象下 这一章主要涉及其他关键字,包括 this.super.static.final.abstract.interface.package.import 等. static 在 Java 类中, ...
- 计算机考研真题 ZOJ问题
题目描述 对给定的字符串(只包含'z','o','j'三种字符),判断他是否能AC. 是否AC的规则如下: 1. zoj能AC: 2. 若字符串形式为xzojx,则也能AC,其中x可以是N个'o' 或 ...