javascript
小马哥spring编程核心思想_Spring源码高级笔记之——Spring核心思想
Spring核心思想
注意:IOC和AOP不是spring提出的,在spring之前就已經存在,只不過更偏向于理論化,spring在技術層次把這兩個思想做了非常好的實現(Java)
第1節loC
1.1什么是loC?
loCInversion of Control(控制反轉/反轉控制),注意它是一個技術思想,不是一個技術實現描述的事情:Java開發領域對象的創建,管理的問題
傳統開發方式:比如類A依賴于類B,往往會在類A中new一個B的對象
loC思想下開發方式:我們不用自己去new對象了,而是由loC容器(Spring框架)去幫助我們實例化對象并且管理它,我們需要使用哪個對象,去問loC容器要即可
我們喪失了一個權利〈創建、管理對象的權利),得到了一個福利〈不用考慮對象的創建、管理等一系列事情)
為什么叫做控制反轉?
控制:指的是對象創建(實例化、管理)的權利
反轉︰控制權交給外部環境了(spring框架、loC容器)
1.2loC解決了什么問題
loC解決對象之間的耦合問題
1.3 loC和DI的區別
Dl: Dependancy lnjection(依賴注入)
怎么理解:
IOC和DI描述的是同一件事情,只不過角度不—樣罷了
第2節AOP
2.1什么是AOP
AOP:Aspect oriented Programming面向切面編程/面向方面編程
AOP是OOP的延續,從OOP說起
oOP三大特征:封裝、繼承和多態
oop是一種垂直繼承體系
OOP編程思想可以解決大多數的代碼重復問題,但是有一些情況是處理不了的,比如下面的在頂級父類Animal中的多個方法中相同位置出現了重復代碼,OOP就解決不了
橫切邏輯代碼
橫切邏輯代碼存在什么問題:
- 橫切代碼重復問題
- 橫切邏輯代碼和業務代碼混雜在一起,代碼臃腫,維護不方便
AOP出場,AOP獨辟蹊徑提出橫向抽取機制,將橫切邏輯代碼和業務邏輯代碼分析
代碼拆分容易,那么如何在不改變原有業務邏輯的情況下,悄無聲息的把橫切邏輯代碼應用到原有的業務邏輯中,達到和原來—樣的效果,這個是比較難的
2.2AOP在解決什么問題
在不改變原有業務邏輯情況下,增強橫切邏輯代碼,根本上解耦合,避免橫切邏輯代碼重復
2.3為什么叫做面向切面編程
「切」︰指的是橫切邏輯,原有業務邏輯代碼我們不能動,只能操作橫切邏輯代碼,所以面向橫切邏輯
「面」︰橫切邏輯代碼往往要影響的是很多個方法,每一個方法都如同一個點,多個點構成面,有一個面的概念在里面
以上就是Spring核心思想的全部內容了,之后Spring源碼學習的內容會持續更新,喜歡的朋友記得點個關注哦!
總結
以上是生活随笔為你收集整理的小马哥spring编程核心思想_Spring源码高级笔记之——Spring核心思想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洲际的merlin怎么用_天问一号是怎么
- 下一篇: 从上往下 流式布局_揭秘做好网站结构优化