1 Star 0 Fork 156

whipper86 / Spring-Analysis

forked from huifer / Code-Analysis 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
Spring-Scope.md 2.28 KB
一键复制 编辑 原始数据 按行查看 历史
huifer 提交于 2020-11-09 10:08 . :fire:doc: env + PropertyResolver

Spring Scope

  • 类全路径: org.springframework.beans.factory.config.Scope

  • 类图

    Scope

方法列表

public interface Scope {

   /**
    * 从容器中获取 name 对应的实例 , 如果没有从 ObjectFactory 创建
    */
   Object get(String name, ObjectFactory<?> objectFactory);

   /**
    * 删除 name 对应的实例
    */
   @Nullable
   Object remove(String name);

   /**
    * 注册摧毁bean的回调方法
    */
   void registerDestructionCallback(String name, Runnable callback);

   /**
    * 解析上下文
    */
   @Nullable
   Object resolveContextualObject(String key);

   /**
    * 获取会话ID
    */
   @Nullable
   String getConversationId();

}

详细分析就在实现类上. 这里仅作为一个方法说明

简单逻辑概述

get

  • 从某个容器中根据name获取实例
    • 实例不存在
      • 从ObjectFactory中获取
        • 放入容器

remove

  • 从容器中根据 name 删除实例
  • 根据需要决定是否删除 name 对应的回调方法(Runnable)

registerDestructionCallback

  • 注册摧毁方法

    name -> runnable 绑定

实现类分析

Java
1
https://gitee.com/huangxinwhipper/spring-analysis.git
git@gitee.com:huangxinwhipper/spring-analysis.git
huangxinwhipper
spring-analysis
Spring-Analysis
master

搜索帮助