Spring有三大核心思想,分別是控制反轉(IOC,Inversion Of Controller),依賴注入(DI,Dependency Injection)和面向切面編程(AOP,Aspect Oriented Programming)。
控制反轉(IOC,Inversion Of Controller)
控制反轉不是什么技術,而是一種設計思想。在Java開發中,IOC意味着將你設計好的對象交給容器控制,而不是傳統的在你的對象內部直接控制。
傳統正轉
控制有反轉,當然也就有原來的正轉。正轉就是說當你需要用到某一個對象的時候,就需要主動去new一個對象實例,才能夠使用該對象。
控制反轉
反轉就是當你需要用到某一個對象的時候,就向Spring IOC容器發請求,由Spring IOC容器返回一個對象實例給你,即將組件之間的關系從程序內部提到外部容器來管理。
依賴注入(DI,Dependency Injection)
依賴注入是控制反轉的具體實現。
因為對象資源的獲取全部要依賴於Spring IOC容器,組件之間的依賴關系由容器在應用系統運行期來決定,在需要的時候由Spring IOC容器動態地往組件中注入需要的實例對象就叫做依賴注入。
面向切面編程(AOP,Aspect Oriented Programming)
面向切面編程利用了一種稱為【橫切】的技術,剖解開封裝的對象內部,並將那些影響了多個類的公共行為封裝到一個可重用的模塊,並將其命名為【切面(Aspect)】。簡單的說,就是那些與業務無關,卻為業務模塊鎖共同調用的邏輯或責任封裝起來,便於減少系統的重復代碼,降低模塊之間的耦合,並有利於未來的可操作性和可維護性。
利用【橫切】技術,AOP把軟件系統分為了兩個部分:核心關注點和橫切關注點。業務處理的主要流程是核心關注點,與業務處理關系不大的部分是橫切關注點。橫切關注點的一個特點是,它們經常發生在核心關注點的多處,而各處基本相似,比如說權限認證、日志和事務等。AOP的作用在於分離系統中的各個關注點,將核心關注點和橫切關注點分離開來。
"因為你的固執和任性,因此我最害怕你突然會放棄。"