幫助中心 | 我的帳號 | 關於我們

Spring IoC源碼精講/軟體開發源碼精講系列

  • 作者:王濤|責編:安妮//薛陽
  • 出版社:清華大學
  • ISBN:9787302601319
  • 出版日期:2022/09/01
  • 裝幀:平裝
  • 頁數:396
人民幣:RMB 99.8 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書從Spring IoC核心技術的使用開始講解,具備充分的Spring IoC使用說明,並且對Spring IoC核心源碼進行分析。
    本書分為22章,主要內容包括SpringXML模式中XML文檔的驗證、XML資源讀取、Spring默認標籤的解析、自定義標籤解析、各類資源對象註冊和生命周期,以及Spring註解模式中的註解元數據、註解模式的啟動和註解模式下Bean的註冊等。本書可以幫助讀者快速掌握Spring IoC容器的基本使用及Spring IoC相關的源碼邏輯。
    本書的源碼分析在大部分情況下遵循測試用例優先,盡可能保證源碼現象可復現。
    本書適合具有一定Java編程基礎和對Spring框架有基本開發能力的讀者。

作者介紹
王濤|責編:安妮//薛陽

目錄
第1章  Spring容器環境搭建及基本使用
  1.1  Spring容器環境搭建
  1.2  Spring基本代碼編輯
  1.3  SpringIoC核心類
  小結
第2章  IoC資源讀取及註冊
  2.1  XML文檔驗證
    2.1.1  認識XML驗證模式
    2.1.2  Spring中XML的驗證
  2.2  Document對象獲取
  2.3  BeanDefinition註冊
    2.3.1  doRegisterBeanDefinitions流程
    2.3.2  parseBeanDefinitions分析
    2.3.3  parseDefaultElementSpring原生標籤的處理
    2.3.4  import標籤解析
    2.3.5  alias標籤解析
    2.3.6  bean標籤解析
    2.3.7  自定義標籤解析概述
  小結
第3章  自定義標籤
  3.1  創建自定義標籤環境搭建
    3.1.1  編寫XSD文件
    3.1.2  編寫NamespaceHandler實現類
    3.1.3  編寫BeanDefinitionParser實現類
    3.1.4  編寫註冊方式
    3.1.5  測試用例的編寫
  3.2  自定義標籤解析
    3.2.1  NamesapceHandler和BeanDefinitionParser之間的關係
    3.2.2  獲取命名空間地址
    3.2.3  NamespaceHandler對象獲取
    3.2.4  getHandlerMappings獲取命名空間的映射關係
    3.2.5  NamespaceHandler的獲取
    3.2.6  NamespaceHandler的init方法
    3.2.7  NamespaceHandler緩存的刷新
    3.2.8  解析標籤BeanDefinitionParser對象準備
    3.2.9  解析標籤parse方法調用
  小結
第4章  別名註冊和BeanDefinition註冊
  4.1  別名註冊測試環境搭建
  4.2  別名註冊介面
  4.3  SimpleAliasRegistry中註冊別名的實現
  4.4  別名換算真名
  4.5  BeanDefinition註冊
  4.6  DefaultListableBeanFactory中存儲BeanDefinition的容器
  4.7  DefaultListableBeanFactory中的註冊細節
    4.7.1  BeanDefinition的驗證
    4.7.2  容器中存在BeanName對應的BeanDefinition的處理
    4.7.3  容器中不存在BeanName對應的BeanDefinition的處理
    4.7.4  BeanDefinition的刷新處理
  4.8  BeanDefinition的獲取

  小結
第5章  bean標籤解析
  5.1  創建bean標籤解析環境
    5.1.1  編寫SpringXML配置文件
    5.1.2  編寫bean?node對應的測試用例
  5.2  parseBeanDefinitionElement方法處理
    5.2.1  parseBeanDefinitionElement第一部分處理
    5.2.2  parseBeanDefinitionElement第二部分處理
    5.2.3  parseBeanDefinitionElement第三部分處理
  5.3  BeanDefinition裝飾
  5.4  BeanDefinition細節
    5.4.1  AbstractBeanDefinition屬性
    5.4.2  RootBeanDefinition屬性
    5.4.3  ChildBeanDefinition屬性
    5.4.4  GenericBeanDefinition屬性
    5.4.5  AnnotatedGenericBeanDefinition屬性
  小結
第6章  Bean的生命周期
  6.1  Java對象的生命周期
  6.2  淺看Bean生命周期
  6.3  初始化Bean
    6.3.1  無構造標籤
    6.3.2  構造標籤中的index模式和name模式
    6.3.3  Spring中的實例化策略
  6.4  Bean屬性設置
    6.4.1  BeanWrapper創建
    6.4.2  BeanWrapper屬性設置
    6.4.3  CachedIntrospectionResults對象介紹
    6.4.4  PropertyValue對象介紹
    6.4.5  最終的數據設置
  6.5  Bean生命周期值Aware介面
  6.6  BeanPostProcessor#postProcessBeforeInitialization
  6.7  InitializingBean介面和自定義init?method方法
  6.8  BeanPostProcessor#postProcessAfterInitialization
  6.9  Bean的摧毀
    6.9.1  DefaultSingletonBeanRegistry中的摧毀
    6.9.2  DefaultListableBeanFactory中的摧毀
  小結
第7章  Bean的獲取
  7.1  Bean獲取方式配置
  7.2  Bean獲取的測試環境搭建
  7.3  doGetBean分析
    7.3.1  BeanName轉換
    7.3.2  嘗試從單例容器中獲取
    7.3.3  從FactoryBean介面中獲取實例
    7.3.4  嘗試從父容器中獲取
    7.3.5  BeanName標記
    7.3.6  非FactoryBean的單例對象創建
    7.3.7  非FactoryBean的原型對象創建
    7.3.8  既不是單例模式也不是原型模式的非FactoryBean創建

    7.3.9  類型轉換器中獲取Bean
  7.4  循環依賴
    7.4.1  Java中的循環依賴
    7.4.2  Spring中的循環依賴處理
  小結
第8章  SpringXML模式下容器的生命周期
  8.1  SpringXML模式下容器的生命周期測試環境搭建
  8.2  XmlBeanFactory分析
  8.3  FileSystemXmlApplicationContext分析
    8.3.1  父上下文處理
    8.3.2  配置文件路徑解析
    8.3.3  刷新操作
    8.3.4  關閉方法分析
  8.4  ClassPathXmlApplicationContext分析
  8.5  SpringXML關鍵對象附表
  8.6  初識LifecycleProcessor
  8.7  LifecycleProcessor測試環境搭建
  8.8  start方法分析
  8.9  stop方法分析
  8.10  LifecycleGroup相關變數
  8.11  BeanPostProcessor註冊
  8.12  BeanFactoryPostProcessor方法調用
  小結
第9章  Spring註解模式
  9.1  註解模式測試環境搭建
  9.2  basePackages模式啟動
    9.2.1  scan方法分析
    9.2.2  doScan方法分析
    9.2.3  處理單個BeanDefinition
  9.3  componentClasses模式啟動
  小結
第10章  Spring配置類解析
  10.1  parse方法分析
  10.2  processConfigurationClass方法分析
  10.3  doProcessConfigurationClass方法分析
  10.4  處理各類註解
    10.4.1  處理@Component註解
    10.4.2  處理@PropertySource和@PropertySources註解
    10.4.3  處理@ComponentScans和@ComponentScan註解
    10.4.4  處理@Import註解
    10.4.5  處理@ImportResource註解
    10.4.6  處理@Bean註解
  10.5  處理父類配置
  小結
第11章  ConfigurationClassPostProcessor分析
  11.1  初識ConfigurationClassPostProcessor
  11.2  ConfigurationClassPostProcessor測試用例搭建
  11.3  postProcessBeanDefinitionRegistry方法分析
    11.3.1  容器內已存在的Bean進行候選分類
    11.3.2  候選BeanDefinitionHolder的排序

    11.3.3  BeanName生成器的創建
    11.3.4  初始化基本環境信息
    11.3.5  解析候選Bean
    11.3.6  註冊ImportBean和清理數據
  11.4  postProcessBeanFactory方法分析
  小結
第12章  DeferredImportSelectorHandler分析
  12.1  初識DeferredImportSelectorHandler
  12.2  DeferredImportSelectorHandler測試環境搭建
  12.3  handler方法分析
  12.4  DeferredImportSelectorGroupingHandler分析
  12.5  processImports方法分析
  小結
第13章  ConfigurationClassBeanDefinitionReader分析
  13.1  ConfigurationClassBeanDefinitionReader測試環境搭建
  13.2  ConfigurationClassBeanDefinitionReader構造函數
  13.3  loadBeanDefinitions方法分析
  13.4  TrackedConditionEvaluator分析
  13.5  loadBeanDefinitionsForConfigurationClass方法分析
  13.6  loadBeanDefinitionsForBeanMethod方法分析
  13.7  registerBeanDefinitionForImportedConfigurationClass方法分析
  13.8  loadBeanDefinitionsFromImportedResources方法分析
  13.9  loadBeanDefinitionsFromRegistrars方法分析
  小結
第14章  Spring元數據
  14.1  認識MetadataReaderFactory
  14.2  SimpleMetadataReaderFactory分析
  14.3  CachingMetadataReaderFactory分析
  14.4  註解元數據讀取工廠總結
  14.5  初識MetadataReader
  14.6  MetadataReader介面實現類說明
    14.6.1  SimpleAnnotationMetadataReadingVisitor成員變數
    14.6.2  SimpleAnnotationMetadata成員變數
    14.6.3  SimpleMethodMetadata成員變數
    14.6.4  MergedAnnotationsCollection成員變數
    14.6.5  TypeMappedAnnotation成員變數
    14.6.6  AnnotationTypeMappings成員變數
    14.6.7  ClassMetadataReadingVisitor成員變數
    14.6.8  AnnotationMetadataReadingVisitor成員變數
  14.7  類元數據介面說明
  14.8  StandardClassMetadata對象分析
  14.9  註解元數據基礎認識
  14.10  Java中註解數據獲取
  14.11  ScopeMetadataResolver分析
    14.11.1  ScopeMetadata分析
    14.11.2  AnnotationScopeMetadataResolver分析
  小結
第15章  Spring事件
  15.1  Spring事件測試環境搭建
  15.2  Spring事件處理器註冊

    15.2.1  事件處理器實例創建后
    15.2.2  事件處理器實例摧毀前
  15.3  Spring事件推送和處理
  小結
第16章  佔位符解析
  16.1  基本環節搭建
  16.2  XML的解析
  16.3  外部配置的讀取
  16.4  字元串佔位符解析
    16.4.1  resolveStringValue分析
    16.4.2  resolvePlaceholders分析
    16.4.3  resolveRequiredPlaceholders分析
    16.4.4  BeanDefinitionVisitor#visitBeanDefinition分析
  小結
第17章  Spring中的轉換服務
  17.1  初識Spring轉換服務
  17.2  ConversionServiceFactoryBean對象的實例化
    17.2.1  afterPropertiesSet方法分析
    17.2.2  GenericConversionService對象創建
    17.2.3  註冊轉換服務
    17.2.4  ConversionServiceFactory.registerConverters分析
  17.3  轉換過程分析
    17.3.1  ConversionService分析
    17.3.2  handleResult分析
    17.3.3  getConverter分析
    17.3.4  ConversionUtils.invokeConverter分析
    17.3.5  handleConverterNotFound分析
  17.4  脫離Spring實現轉換服務
  小結
第18章  MessageSource源碼分析
  18.1  MessageSource測試環境搭建
  18.2  MessageSource實例化
  18.3  getMessage方法分析
    18.3.1  resolveCodeWithoutArguments方法分析
    18.3.2  resolveCode方法分析
  小結
第19章  資源解析器
  19.1  資源解析器測試環境搭建
  19.2  ResourcePatternResolver類圖分析
  19.3  PathMatchingResourcePatternResolver構造器分析
  19.4  getResource方法分析
  19.5  getResources方法分析
    19.5.1  findPathMatchingResources方法分析
    19.5.2  findAllClassPathResources方法分析
  小結
第20章  BeanName生成策略
  20.1  AnnotationBeanNameGenerator分析
    20.1.1  AnnotatedBeanDefinition類型的BeanName生成策略
    20.1.2  非AnnotatedBeanDefinition類型的BeanName生成策略
  20.2  FullyQualifiedAnnotationBeanNameGenerator分析

  20.3  DefaultBeanNameGenerator分析
  小結
第21章  條件註解
  21.1  條件註解測試環境搭建
  21.2  條件註解分析
  小結
第22章  Spring排序註解
  22.1  排序註解測試環境搭建
  22.2  OrderComparator.sort方法分析
  小結

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032