配置项

  • id bean的标识
  • class bean的类全名
  • scope bean的作用域
  • constructor-arg 构造注入
  • properties 设值注入
  • autowire 装配模式
  • lazy-init 是否懒加载
  • init-method 初始化方式
  • destroy-method 销毁方法

作用域scope

  • singleton 单例,一个bean容器中只存在一份,若有多个容器则有多个实例
  • prototype 原型模式,每次请求创建新实例,destroy不生效
  • request 每个请求创建一个
  • session 当前session内有效
  • global session 单点情景下,跨系统session
    测试singleton和prototype


生命周期

  • 定义(实现一个类)
  • 初始化
    两种方式
    1、【常用】实现org.springframework.beans.factory.InitializingBean接口,并覆盖afterPropertiesSet()方法

2、配置init-method


3、全局配置,在beans中配置default-init-method(当某个bean设置了1、2种方式,则全局配置不生效)

  • 使用
  • 销毁
    1、【常用】实现org.springframework.beans.factory.DisposableBean接口,并覆盖destroy()方法

2、配置destroy-method

3、全局配置,在beans中配置default-destroy-method(当某个bean设置了1、2种方式,则全局配置不生效)

自动装配Aware

spring提供了以Aware结尾的接口,实现后可在bean初始化后获取相应资源,可以对其进行操作(因为资源较核心,操作须慎重)
类实现ApplicationContextAware接口,覆盖setApplicationContext方法

配置xml

获取该实例,实现aware接口的类setApplicationContext方法会优先执行,且和使用时的实例是同一个

AutoAwaring

  • No 什么都不做
  • byName 通过名称,配置后,属性可不用配置,会自动根据名称寻找相应的bean加载(一定要配置bean的id)
  • byType 通过类型(class)匹配对应的bean,若未找到,则什么都不做
  • Constructor 与byType类似,区别在于它应用与构造器参数,若未找到会异常
    Demo
    1、只配置bean

    2、Test类

    3、Service类

    4、Dao类

    5、RunTest

Resources&ResourceLoader

Resource针对于资源的统一接口

  • UrlResource Url对应的资源,根据一个URL地址即可构建
  • ClassPathResource 类路径下的资源文件
  • FileSystemResource 文件系统里的资源文件
  • ServletContextResource 用于访问Servlet环境下的资源
  • InputStreamResource 输入流封装资源
  • ByteArrayResource 字节数组封装资源

ResourceLoader

所有的applicationContext都会实现该接口
前缀:

  • classpath 从classpath中加载
  • file 从文件系统中加载
  • http 从连接中加载
  • (none)

JavaSpring【三、Bean】的更多相关文章

  1. Spring(三)Bean继续入门

    一.Aware相关接口 对于应用程序来说,应该尽量减少对Sping Api的耦合程度,然而有些时候为了运用Spring所提供的一些功能,有必要让Bean了解Spring容器对其进行管理的细节信息,如让 ...

  2. Spring三 Bean的三种创建方式

    创建Bean的三种方式在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定Bean实例的实现类,但这不是实例化Bean的唯一方法.实际上,Spring ...

  3. Spring揭秘 读书笔记 三 bean的scope与FactoryBean

    本书可作为王富强所著<<Spring揭秘>>一书的读书笔记  第四章 BeanFactory的xml之旅 bean的scope scope有时被翻译为"作用域&quo ...

  4. (三)Bean生命周期

    1 Bean注册 应用启动实质是调用Spring容器启动方法扫描配置加载bean到Spring容器中.同时启动内置的Web容器的过程,具体分析如下: @SpringBootApplication注解在 ...

  5. Java开发学习(三)----Bean基础配置及其作用范围

    一.bean基础配置 对于bean的基础配置如下 <bean id="" class=""/> 其中,bean标签的功能.使用方式以及id和clas ...

  6. Spring学习记录(三)---bean自动装配autowire

    Spring IoC容器可以自动装配(autowire)相互协作bean之间的关联关系,少写几个ref autowire: no ---默认情况,不自动装配,通过ref手动引用 byName---根据 ...

  7. Spring系列(三) Bean装配的高级技术

    profile 不同于maven的profile, spring的profile不需要重新打包, 同一个版本的包文件可以部署在不同环境的服务器上, 只需要激活对应的profile就可以切换到对应的环境 ...

  8. 学习 Spring (三) Bean 的配置项 & 作用域

    Spring入门篇 学习笔记 配置项 Id: 整个 IoC 容器中的唯一标识 Class: 具体实例化的类(必须配置项) Scope: 作用域 Constructor arguments: 构造器参数 ...

  9. java-Spring 管理bean例子

    Spring 通过2种方式管理bean 首先要导入Spring的包,(Spring.jar和commonslogging.jar) 或加载分开的... 在src目录下建立applicationCont ...

  10. Spring框架系列(三)--Bean的作用域和生命周期

    Bean的作用域 Spring应用中,对象实例都是在Container中,负责创建.装配.配置和管理生命周期(new到finalize()) Spring Container分为两种: 1.BeanF ...

随机推荐

  1. 【ASP.NET Core学习】远程过程调用 - gRPC使用

    本文介绍在gRPC使用,将从下面几个方面介绍 什么是RPC 什么时候需要RPC 如何使用gRPC 什么是RPC RPC是Remote Procedure Call简称,翻译过来是远程过程调用.它是一个 ...

  2. 4.git的基本命令

    版本库 index 暂存区,HEAD 将来1.0,2.0的指向  多次add,一次commit 每次commit一次,head就指向了最新的版本.head是回退版本的时候会用到 一般有开发的分支,ma ...

  3. 使用 bash 脚本把 AWS EC2 数据备份到 S3

    目录 一.IAM 秘钥授权方式(普通) 1.1.打开 IAM 1.2.添加用户 1.3.安装和配置 AWS CLI 1.4.配置授权 二.IAM 角色授权方式(安全) 2.1.创建一个 EC2 访问 ...

  4. 解决Unity3d 图片黑边问题

    突然发现UI有黑边,在Photoshop里面没发现问题. 最后在图集的属性中去掉Minimap选项就可以了.

  5. Mysql的binlog 和InnoDB的redo-log

    来源:https://www.jianshu.com/p/4bcfffb27ed5 mysql日志系统之redo log和bin log Mr林_月生关注 12018.12.02 01:35:06字数 ...

  6. CF1187D Subarray Sorting

    思路: 线段树好题.对a数组中的每个元素从左到右依次操作,判断最终是否能够转化成b数组.在此过程中使用线段树维护区间最小值判断是否能够进行合法操作. 实现: #include <bits/std ...

  7. Matlab JPEG详细介绍

    作为一个基本的图像压缩方式,JPEG 已经得到了广泛的运用,但 JPEG 相关的基本原理,却经常被忽视,或解释得很不确切.这里我们详细讨论一下 JPEG 的编码原理,并结合实例来给出一个更加感性的认识 ...

  8. vue v-slot

    参考链接:https://www.jianshu.com/p/7020636d68a5

  9. 第8课.第一个ARM裸板程序(点亮led)及申引

    1.原理图 2.芯片手册 3.几条汇编代码 1.ldr:读内存 ldr R0, [R1] 假设R1的值是x,读取地址x上的数据(4字节),保存到R0中 ldr R0, =0x12345678 (4字节 ...

  10. mysql 全表扫描场景

    全表扫描是数据库搜寻表的每一条记录的过程,直到所有符合给定条件的记录返回为止.通常在数据库中,对无索引的表进行查询一般称为全表扫描:然而有时候我们即便添加了索引,但当我们的SQL语句写的不合理的时候也 ...