首页

【java核心面试知识整理(架构师)】Spring 原理 之IOC容器实现

标签:ioc     发布时间:2023-01-02   

阅读《java核心面试知识整理(架构师)》第6章节Spring 原理 之6.1.7.3. IOC 容器实现 - BeanFactory 是 Spring 框架的基础设施,面向 Spring 本身;ApplicationContext 面向使用Spring框架的开发者,几乎所有的应用场合我们都直接使用 ApplicationContext 而非底层的 BeanFactory。

【java核心面试知识整理(架构师)】Spring 原理 之IOC容器实现

1. Spring 配置文件中每一个节点元素在 Spring 容器里都通过一个 BeanDefinition 对象表示,@b@它描述了 Bean 的配置信息。而 BeanDefinitionRegistry 接口提供了向容器手工注册@b@BeanDefinition 对象的方法。@b@1.1..1.1.2 BeanFactory 顶层接口@b@@b@2. 位于类结构树的顶端 ,它最主要的方法就是 getBean(String beanName),该方法从容器中@b@返回特定名称的 Bean,BeanFactory 的功能通过其他的接口得到不断扩展:@b@1.1..1.1.3 ListableBeanFactory@b@@b@3. 该接口定义了访问容器中 Bean 基本信息的若干方法,如查看 Bean 的个数、获取某一类型@b@Bean 的配置名、查看容器中是否包括某一 Bean 等方法;@b@1.1..1.1.4 HierarchicalBeanFactory 父子级联@b@@b@4. 父子级联 IoC 容器的接口,子容器可以通过接口方法访问父容器; 通过@b@HierarchicalBeanFactory 接口, Spring 的 IoC 容器可以建立父子层级关联的容器体系,子@b@容器可以访问父容器中的 Bean,但父容器不能访问子容器的 Bean。Spring 使用父子容器实@b@现了很多功能,比如在 Spring MVC 中,展现层 Bean 位于一个子容器中,而业务层和持久@b@层的 Bean 位于父容器中。这样,展现层 Bean 就可以引用业务层和持久层的 Bean,而业务@b@层和持久层的 Bean 则看不到展现层的 Bean。@b@1.1..1.1.5 ConfigurableBeanFactory@b@@b@5. 是一个重要的接口,增强了 IoC 容器的可定制性,它定义了设置类装载器、属性编辑器、容@b@器初始化后置处理器等方法;@b@13/04/2018 Page 122 of 283@b@1.1..1.1.6 AutowireCapableBeanFactory 自动装配@b@@b@6. 定义了将容器中的 Bean 按某种规则(如按名字匹配、按类型匹配等)进行自动装配的方法;@b@1.1..1.1.7 SingletonBeanRegistry 运行期间注册单例 Bean@b@@b@7. 定义了允许在运行期间向容器注册单实例 Bean 的方法;对于单实例( singleton)的 Bean @b@来说,BeanFactory 会缓存 Bean 实例,所以第二次使用 getBean() 获取 Bean 时将直接从@b@IoC 容器的缓存中获取 Bean 实例。Spring 在 DefaultSingletonBeanRegistry 类中提供了一@b@个用于缓存单实例 Bean 的缓存器,它是一个用 HashMap 实现的缓存器,单实例的 Bean 以@b@beanName 为键保存在这个 HashMap 中。@b@1.1..1.1.8 依赖日志框框@b@@b@8. 在初始化 BeanFactory 时,必须为其提供一种日志框架,比如使用 Log4J, 即在类路径下提@b@供 Log4J 配置文件,这样启动 Spring 容器才不会报错。
  • ◆ 相关内容
<<推荐下载>>
  • (1) 阿里巴巴Java开发手册8种不同版本
  • (2) Web前端开发视频教程
  • (3) 30+明星讲师PPT课件分享一线大厂架构实战经验
  • (4) java开发_架构篇_视频资源分享_v2208
  • (5) java开发_高级篇_视频资源分享_v2208
  • (6) java开发_进阶篇(中级)_视频资源分享_v2208
  • (7) java开发_入门篇_视频资源分享_v2208
  • (8) 微信小程序开发视频1+167源码+实战demo等下载
  • (9) easy-shopping电子商务java源码(附脚本和安装文档说明)下载
  • (10) java常用的72份知名实用的电子书下载
  • (11) java开发性能优化资料整理大全(8份电子文档+3份实战优化)下载
  • (12) 9个常用的算法设计资料和100以上视频课件内容下载
  • (13) vue开发必备常用手册16件下载
  • (14) 21种不同技术集群方案(es、flink、redis、nginx、zk、lvs、kafka、mysql、k8s等)参考资料下载
  • (15) 20种技术代码规范(js/java/dba/阿里/华为/oracle/mysql等)参考资料下载
  • (16) 微服务五套资料(0-1,架构设计,springcloud,nacos等)下载
  • (17) 架构师(28知识图谱+3套简历模板+6套架构实战文档等)完整资料整理下载
  • (18) 大数据18套实战基础知识+8套简历模板下载
  • (19) 并发编程全套(7套+阿里巴巴+亿级实战等)实战资料下载
  • (20) Kafka九套学习整理知识点全套(面试+笔记+代码api+命令+容备等)资料下载
  • (21) java全套9个不同方向类型的面试题(基础+核心+大厂+架构师+近万套题库等)下载
  • (22) JAVA开发常用API帮助文档大全(超52种以上技术资料,高手必备)下载
  • (23) springcloud超详细139件全套学习实战资料( 视频课件+源码demo+文档资料等)下载
  • 更多推荐>>
  • <<热门文章>>