配置项

  • 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)

最新文章

  1. C#获得网卡信息 NetworkInterface IPInterfaceProperties
  2. 操作系统开发系列—13.c.进程之中断重入
  3. Mac Pro 安装 Homebrew 软件包管理工具
  4. jquery中用jqzoom实现放大镜效果
  5. Twenty Questions
  6. vlist java实现-转
  7. Python自动化运维之26、Web框架本质、MVC与MTV
  8. error in invoking target 'mkldflags ntcontab.o nnfgt.o' of makefile
  9. Batch Sort
  10. 微信小程序中发送模版消息注意事项
  11. Python3中urllib详细使用方法(header,代理,超时,认证,异常处理) 转
  12. MySQL保留字 ERROR 1064 (42000)
  13. function()
  14. vue获取当前元素
  15. Oracle 11g streams部署
  16. iOS UI进阶-1.1 Quartz2D 图片水印/裁剪/截图
  17. 二叉堆复习(包括d堆)
  18. 每天一个linux命令:pwd命令
  19. Mac之安装zsh
  20. python爬取小说详解(一)

热门文章

  1. python3 高级编程(三) 使用@property
  2. log4net通过代码控制按分类输出
  3. iOS-项目重构(浅谈)
  4. 使用 tuned/tuned-adm工具动态调优系统CPU性能模式
  5. 双目结构光三维扫描仪获得的三维点云模型(GIF)
  6. XSSer:自动化XSS漏洞检测及利用工具
  7. 【ARM-LInux开发】如何运行wayland
  8. 最新 唯品会java校招面经 (含整理过的面试题大全)
  9. mdk3洪水攻击教程
  10. editor does not cantain a main type——解决