当前位置: 首页 > news >正文

SpringBoot学习笔记(五)IOC

一.ApplicationContext不是最顶级的IOC容器

IOC容器都是ApplicationContext接收ClassPathXmlApplicationContext

ApplicationContext ctx = new ClassPathXmlApplicationcontext("applicationContext.xml");

BeanFactory才是IOC容器最顶级的接口,但是Application功能更强大

二.ListableBeanFactory

  • 它是BeanFactory接口的扩展,他可以实现枚举其所有bean实例,而不是按客户的要求按名称--尝试进行bean查找 。预记载其所有bean定义的beanFactory实现

  • 提供Bean迭代

 三.EnvironmentCapable

 获取Environment类型的域

四.MessageSource

用于解析消息的策略接口,支持此类消息的参数化和国际化

五.ApplicationEventPublisher

  • 策略接口。用于将位置模式(Ant样式的路径模式)解析为Resource对象
  • 这是ResourceLoader接口的扩展。可以检查传入的ResourceLoader是否也实现了此扩展接口

六.ConfigurableApplicationContext

  •  他是一种SPI接口,将大多数ApplicationContext子类实现。除了ApplicationContext接口中的应用程序上下文客户端方法外,提供了用于配置ApplicationContext功能
  • 配置和生命周期方法封装在这里,避免代码显式暴露给ApplicationContext客户端代码

七.AbstractApplicationContext

  • ApplicationContext接口抽象实现。不强制配置存储类型,简单实现通用上下文功能。这个嘞使用模板方法模式,需要具体的子类实现抽象方法
  • 与普通BeanFactory相比,ApplicationContext应该检测其内部bean工厂中定义的特殊bean
  • 此类自动注册在上下文中定义bean的BeanFactoryPostProcessors,BeanPostProcessors和ApplicationListeners

八.ClassPathXmlApplicationContext

  • 基于XML

  • 可刷新
  • 可配置

九.AnnotationConfigApplicationContext

总结:

  1. SpringFramework原生的IOC容器的特点:分层次可列举可配置
  2. SpringBoot在SpringFrameWork原生的IOC容器做了扩展,都是基于注解的扩展

相关文章:

  • 微信、QQ防撤回
  • RKMPP库快速上手--(三)MPP解码入门
  • torch.nn.interpolate—torch上采样和下采样操作
  • DBCO-PEG-OPSS/OPSS-PEG-DBCO/二苯并环辛炔聚乙二醇修饰邻吡啶二硫
  • SpringCloud与SpringCloudAlibaba的比较
  • PostgreSQL修炼之道笔记之准备篇(四)
  • Springboot整合Redis集群实战详解
  • 聚乙烯亚胺偶联乳清白蛋白/肌白蛋白/豆清白蛋白/蓖麻蛋白/豌豆白蛋白1b ( PA1b)科研试剂
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • springBoot整合SqlSessionTemplate使用
  • jieba—第三方中文分词函数库
  • Python桌面文件清理脚本
  • STM32开发板在RT-Thread中使用segger_rtt软件包
  • SpringBoot异常处理机制之自定义404、500错误提示页面
  • Debezium系列之:深入理解Debezium是如何处理bigint unsigned类型的字段
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 2017-09-12 前端日报
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Java 多线程编程之:notify 和 wait 用法
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Java方法详解
  • php中curl和soap方式请求服务超时问题
  • Spring Cloud Feign的两种使用姿势
  • STAR法则
  • unity如何实现一个固定宽度的orthagraphic相机
  • vue脚手架vue-cli
  • 反思总结然后整装待发
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 开源地图数据可视化库——mapnik
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #大学#套接字
  • #微信小程序:微信小程序常见的配置传值
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (4)logging(日志模块)
  • (6)添加vue-cookie
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (汇总)os模块以及shutil模块对文件的操作
  • (区间dp) (经典例题) 石子合并
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)UDP基本编程步骤
  • .NET Framework杂记
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET 读取 JSON格式的数据
  • .NetCore项目nginx发布
  • .NET简谈设计模式之(单件模式)
  • .NET文档生成工具ADB使用图文教程
  • [《百万宝贝》观后]To be or not to be?