Spring学习笔记之BeanFactory

简介:

wKioL1nYc9-AHBHzAABMnTu4_Ho866.png


BeanFactory是一个顶级接口,下面看下它是干什么的。


wKiom1nYdGHQ7yM7AACxQJuUQic126.png

这里说了,它是访问Spring Bean容器的根接口,是Bean容器的基本视图。

它的一些子接口,比如ListableBeanFactory和ConfigurableBeanFactory都有特别的而且不同的用途。

实现了这个接口的对象维护了许多的Bean定义,每一个Bean定义用一个名字来唯一标识。

下面看一下它的子接口以及实现类

wKioL1nYdcrBi6PGAABxkmbPJio440.png

有三个子接口直接继承自BeanFactory,他们分别是ListableBeanFactory、HierarchicalBeanFactory和AutowireCapableBeanFactory。

下面分别看一下它们各自有什么样的用途:

wKioL1nYdtuhLGulAAEJ3E46cYc156.png

wKiom1nYd3qR2eOgAABvHdoAV7M089.png

在这个接口的注释中说了,说这是BeanFactory的一个扩展接口,它可以列举出所有的Bean示例,而不是当客户端请求的时候去根据名字一个一个的查找。


wKiom1nYeQ_Bp6AtAABks7fJLL0998.png

HierarchicalBeanFactory是一种能够分层的Bean Factory。什么意思呢?什么叫有层级?什么叫分层?我的理解是,可以被继承。

wKioL1nYecHDq5NUAAB2dfhlQ0o145.png

wKiom1nYekbxdkZ5AAArrpq_CYY187.png

AutowireCapableBeanFactory有自动装配的能力。

最后,我们看一下DefaultListableBeanFactory

wKioL1nYezeSbWY1AAE8cHmdbM8958.png

这个类直接或间接的实现了那三个接口,也就是说上面说的三种特性它都有。

文档中也说了,他是一个成熟的Bean Factory。

它最典型的用法是在Bean被访问之前注册所有的Bean。因此,在一个本地的Bean定义表中查找是很廉价的操作。


本文转自   手不要乱摸  51CTO博客,原文链接:http://blog.51cto.com/5880861/1970615

相关文章
|
2月前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
73 9
|
3月前
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
46 9
|
2月前
|
Java Kotlin 索引
学习Spring框架特性及jiar包下载
Spring 5作为最新版本,更新了JDK基线至8,修订了核心框架,增强了反射和接口功能,支持响应式编程及Kotlin语言,引入了函数式Web框架,并提升了测试功能。Spring框架可在其官网下载,包括文档、jar包和XML Schema文档,适用于Java SE和Java EE项目。
36 0
|
3月前
|
XML Java 数据格式
Spring学习
【10月更文挑战第6天】Spring学习
30 1
|
3月前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
120 2
|
3月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
336 1
|
3月前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
43 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
3月前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
51 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
3月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
383 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
3月前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
142 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
下一篇
开通oss服务