1. 程式人生 > >spring是什麼,以及他的優點和核心

spring是什麼,以及他的優點和核心

什麼是spring

spring是一個開放原始碼的設計層面框架 ,他解決的是業務邏輯層和其他各層的鬆耦合問題,因此它將面向介面的程式設計思想貫穿整個系統應用。

 

為什麼要使用spring:

1:spring的aop支援一些事務、日誌等進行集中管理,提高複用性

2:spring 提供了與第三方 持久層框架的良好整合 。

3:spring框架不強制應用完全依賴於spirng,開發者可以自由選擇spirng框架的部分或全部

 

Spring的兩大核心:

Aop:面向切面程式設計,aop技術底層也是採用的代理技術,代理技術有兩種:1:基於JDK的動態代理,2:基於CGLIB的動態 代理

 

AOP的用處以及好處:AOP能夠將那些與業務無關,卻為業務模組所共同呼叫的邏輯或責任,例如(事務處理、日誌管理、許可權管理、許可權控制等),封裝起來,便於減少系統的重複程式碼,降低模組的耦合度,並有利於未來的可操作性和可維護性。

 

IOC:IOC即控制反轉,不是什麼技術,而是一種設計思想。IOC意味著將你設計好的物件交給容器控制,而不是傳統的在你的物件內部直接控制。

控制反轉:

控制:

誰控制誰:當然是ioc容器控制了物件

控制了什麼:主要控制了外部資源獲取(不止物件包括比如檔案等)

反轉:

為什麼是反轉:因為容器幫我們查詢即注入依賴物件,物件只是被動的接受依賴物件

什麼 被反轉了:依賴的物件被反轉了

DI:DI即依賴注入,依賴注入的目的並非為軟體系統帶來更多功能,而是為了提升元件重用的頻率,併為了提升組建重用的頻率,並未系統搭建一個靈活、可擴充套件的平臺。

依賴注入:

依賴:

誰依賴誰:應用程式依賴於ioc容器

為什麼需要依賴:應用程式需要ioc容器來提供物件需要的外部資源

注入:

誰注入誰:ioc容器注入應用程式的某個物件,應用程式依賴的物件

注入了什麼:就是注入某個物件所需要的外部資源(包括物件、資源、常用資料)

 

IOC交給容器控制的好處:Tomcat的記憶體為64Mb,後來加大了記憶體容量,java中這個管家婆就是垃圾回收機制,但是她不是那麼的智慧,不能幫我們清理乾淨。在一個大專案中,如果我們想用物件就new物件的話,那會造成記憶體過大,java自動回收機制也無法替我們回收乾淨,有可能會造成記憶體溢位。而spring他是在一個執行緒池上建立的物件,當我們使用的時候就拿出來,不用的時候就掛起,很大程度的解決了記憶體溢位的問題。