一、Spring 概述
参考资料:https://baike.baidu.com/item/spring/85061?fr=aladdin
Spring 是 JavaEE 编程领域的一个轻量级开源框架,由Rod Johnson 先生在2002年最早提出并随后创建。
Spring 是一个开源容器框架,集成各类型的工具,通过核心的 Bean Factory 实现了底层的类的实例化和生命周期的管理。
Spring 的主要特点:
- IoC(Inverse of Control 控制反转),实现低耦合,底层采用工厂设计模式,所有的 Bean 都需注册到 Bean 工厂中,将 Bean 的初始化和生命周期的监控都交给工厂进行管理
- AOP (Aspect Oriented Programming) 面向切面编程
- DI (Dependency Injection) 依赖注入,可以注入普通类型或者对象到 Spring 容器中
二、Spring 中的抽象工厂模式
运行环境:
- SpringBoot v2.6.9
- Spring v5.3.21
由于 Spring 的几大特点: IoC 、DI 和 AOP 得知,其底层使用 Bean 工厂来注册与管理 Bean,即 Java 的普通类型和对象,那么我们可以来了解一下其底层的 Bean 工厂:
org.springframework.beans.factory.BeanFactory
package org.springframework.beans.factory;
import org.springframework.beans.BeansException;
import org.springframework.core.ResolvableType;
import org.springframework.lang.Nullable;
public interface BeanFactory {
// Bean 自带的前缀
String FACTORY_BEAN_PREFIX = "&";
// 1. 根据名称获取 Bean
Object getBean(String name) throws BeansException;
// 2. 根据名称获取 Bean, 并转化为指定的对象