spring源码分析第五天------springAOP核心原理及源码分析
spring源碼分析第五天------springAOP核心原理及源碼分析
1、 面向切面編程。可以通過預 編譯方式和運行期動態代理實現在不修改源代碼的情況下給程序動態統一添加功能的一種技術
切面(Aspect)
連接點(Joinpoint)
通知(Advice)
切入點(Pointcut)
目標對象(Target Object)
AOP 代理(AOP Proxy)
2、通知(Advice)類型
前置通知
后置通知
返回后通知
環繞通知
3、execution(* com.spring.service..(…))表示 com.spring.service 包下,返回值為任意類型;方法名任意; 參數不作限制的所有方法
4、Spring 中主要的 AOP 組件
Spring 提 供 了 兩 種 方 式 來 生 成 代 理 對 象 : JDKProxy 和 Cglib , 具 體 使 用 哪 種 方 式 生 成 由 AopProxyFactory 根據 AdvisedSupport 對象的配置來決定。默認的策略是如果目標類是接口,則使 用 JDK 動態代理技術,否則使用 Cglib 來生成代理。
代理對象如何織入
InvocationHandler 是 JDK 動態代理的核心,生成的代理對象的方法調用都會委托到 InvocationHandler.invoke()方法。而通過 JdkDynamicAopProxy 的簽名我們可以看到這個類其實 也實現了 InvocationHandler
5、分布式系統的特性
在分布式系統中,同時滿足 CAP 定律中的一致性 Consistency、可用性 Availability 和分區容錯性 Partition Tolerance 三者是不可能的。在絕大多數的場景,都需要犧牲強一致性來換取系統的高可 用性,系統往往只需要保證最終一致性。
分布式事務服務(Distributed Transaction Service,DTS)是一個分布式事務框架,用來保障在 大規模分布式環境下事務的最終一致性。
CAP 理論告訴我們在分布式存儲系統中,最多只能實現上面的兩點。而由于當前的網絡硬件肯定會出現 延遲丟包等問題,所以分區容忍性是我們必須需要實現的,所以我們只能在一致性和可用性之間進行權 衡。
數據一致性理解: 強一致性:當更新操作完成之后,任何多個后續進程或者線程的訪問都會返回最新的更新過的值。這種 是對用戶最友好的,就是用戶上一次寫什么,下一次就保證能讀到什么。根據 CAP 理論,這種實現需 要犧牲可用性。
6、事務的基本概念
5.6、事務的嵌套
總結
以上是生活随笔為你收集整理的spring源码分析第五天------springAOP核心原理及源码分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 继上一篇博客--javaweb通过接口来
- 下一篇: spring源码分析第六天------s