javascript
Spring 技术内幕读书笔记
Spring的設計理念和整體架構
1.1 spring的各個子項目
1.1.1 spring framwork 核心, IoC容器設計,控制反轉,AOP ,MVC ,JDBC ,事務處理
1.1.2 spring security 認證和安全工具
1.1.3 spring security OAuth 提供一個開放的協議的實現,進行簡單而標準的安全調用
1.1.4 spring Intergration 與企業級應用系統的集成
1.1.5 spring social spring框架的擴展
1.1.6 spring data 提供使用非關系型數據框的能力
1.2 spring的設計目標
1.3 spring的整體架構
1.3.1 Spring IoC
1.3.2 Spring AOP
1.3.3 Spring MVC
1.3.4 Spring JDBC/Spring ORM
1.3.5 Spring 事物處理
1.3.6 Spring遠端調用
1.3.7 Spring應用
1.4 spring的應該場景
Spring Framwork的核心: IoC容器的實現
依賴反轉: 反轉了什么?
依賴對象的獲得被反轉,業務邏輯的實現往往需要2個及以上的對象合作完成,那么在a中必然需要對b引用的依賴,這樣會造成較強的耦合性.依賴注入是將依賴對象的獲取反轉,控制權統一交給IoC容器去管理,以實現解耦的目的.
2.1 IoC容器的設計與實現: BeanFactory 和 ApplicationContext
BeanFactory 提供了容器最基本的功能和規范
ApplicationContext 是容器的高級形態,通過一系列的接口實現,添加不同的額外功能
2.1.1 IoC容器的主要接口設計
線路一: BeanFactory >> HierarchicalBeanFactory >> ConfigurableBeanFactory
線路二: BeanFactory >> ApplicationContext >> WebApplicationContext
>> ConfigurableApplicationContext
2.1.2 BeanFactory 中的方法
Object getBean(String name); 根據名字獲取bean;
boolean containsBean(String name); 讓用戶判斷是否有指定名字的Bean
boolean isSingleton(String name); 是否是單例模式
boolean isPrototype(String name); 是否是原始模式,每次對bean的請求都會創建一個新的bean實例
boolean isTypeMatch(String name, ResolvableType typeToMatch); 指定名字的bean的Class類型是否是傳入的Class類
Class<?> getType(String name);根據類型獲取bean
String[] getAliases(String name); 獲取bean的所有別名
2.1.3 編程式使用IoC容器
1.獲取特定位置的數據資源
2.創建BeanFactory
3.創建一個BeanDifination的讀取器,通過回調配置給BeanFactory;
4.解析資源,轉換載入BeanDefination
2.2 IoC容器的初始化過程
2.2.1 BeanDefinition的Resource定位
2.3.2 BeanDefinition的載入與解析
2.3.3 BeanDifinition在IoC容器中的注冊
2.3 IoC的依賴注入
Spring AOP的實現
3.1 Spring AOP概述
3.1.1 AOP概念回顧
3.1.2 通知
定義代碼在什么情況下織入
3.1.3 切點
需要增強的方法的集合
3.1.4 通知器
使通知和切點結合,定義應該使用那個通知并在那個關注點使用它
3.2 Spring AOP的設計與實現
3.3 建立AOPProxy代理對象
3.3.1 設計原理
3.3.2 配置ProxyFactoryBean
3.3.3 ProxyFactoryBean生成AopProxy代理對象
3.3.4 JDK生成AopProxy代理對象
3.3.5 CGLB生成AopProxy代理對象
3.4 Spring AOP攔截器調用的實現
3.5 Spring AOP的高級特性
BeanDefinition的元信息
1. Class Bean 全類名,必須是具體類,不能用抽象類或接口
2. Name Bean 的名稱或者ID
3. Scope Bean 的作用域
總結
以上是生活随笔為你收集整理的Spring 技术内幕读书笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【NOWCODE SEVEN】:二分查找
- 下一篇: java工程师的自我评价_Java开发工