-
1 # JIAYOU小畫家
-
2 # 南瓜lalala
說白了就是把java在企業開發過程中經常遇到的問題或者說要解決的問題,抽象成一個框架。
比如你有個需求要在所有的請求加上入參和出餐的日誌,一個個加也太麻煩了,用spring的aop就很方便,雖然aop也不是spring獨有的概念,其實spring的作用就在這裡,使經常需要用到的功能實現變得簡單,可以說spring其實並沒有發明啥新的東西出來,aop ioc都是已經有的概念,其作用還是對企業級開發的簡化
-
3 # 黃小斜
1、加快開發速度
2、降低學習成本
3、整合相關元件和功能
4、減少程式碼冗餘
-
4 # 此生唯一
spring可以說是在JAVA開發者中最鼎鼎大名的框架了,很多人從來沒有看過jdk原始碼,卻對spring中的一切津津樂道,可以說spring從jdk中誕生,但是卻無限增加了JAVA的魅力!
spring誕生背景是什麼?
以前的JAVA物件,無論是在方法中使用,或者注入都需要new出來,由應用程式或者直接說開發者中進行管理,不僅會建立大量物件,還難屬於強耦合,spring憑藉著IOC(控制反轉)的理念將物件的建立與維護都使用spring容器來做,透過依賴注入實現物件的在執行期的注入使用!
spring有什麼好處?
除了上面說到的控制反轉,管理物件以外,spring還集成了諸多優秀的功能!!
1,解耦:用對程式碼的低侵入性消除了原本物件之間的強依賴關係!
2,spring aop:面向切面程式設計,可以讓我們把類似於日誌輔助,安全驗證,攔截等等這種非業務程式碼抽象出來,實現與業務程式碼的解耦!
3,spring提供了方便的元件插拔,能讓開發者快速的整合諸如快取,資料庫連線,訊息等更為豐富的元件!
4,spring支援事務處理,透過簡單的註解就可以開啟事務!
5,spring家族的springboot可以用來當做微服務基礎架構,springcloud更是隻需要很少的配置和程式碼編寫便能獲得一個穩定的服務架構!
spring可以說是好處多多,很多人把spring當做JAVA聖經,不僅獲得良好的使用體驗,從spring原始碼學到程式設計技巧,設計模式等!
關於spring,還有更多話要說,以後會逐步分享,敬請關注。。。
-
5 # 一個存在感小透明
Spring在推動java登上程式語言榜首位置的戰役中,功不可沒。
那麼我們來聊聊,spring到底做了什麼,能夠讓Java決勝千里之外。
輕量級框架首先,Spring是一個輕量級框架,使用起來基本沒有任何負擔,最基礎的版本只有2M!
控制反轉Spring能夠實現控制反轉,從而降低了物件之間的耦合。有時也稱之為依賴注入,當呼叫者需要使用被呼叫者的時候,只需要透過Spring來獲取被呼叫者例項即可,而無需參與被呼叫者的生命週期。這也是減少了開發者的負擔。
面向切面程式設計這也是Spring非常突出的優勢,透過把應用業務邏輯與系統分開,進一步分解了功能實現,降低了耦合度。
容器Spring包含並管理了專案中物件的生命週期配置,這與在依賴注入中提到的呼叫者無需參與被呼叫者的生命週期意義一致。每個角色當然是負責的工作越少越好,越單一越好。
事務管理Spring提供了一個持續性的事務管理介面,可以透過配置檔案來實現事務支援,而不需要手動程式設計。
非侵入式這裡體現了Spring作為一個框架的優秀自知之明,一個優秀的框架就是存在感極低的幫助你解決了很多麻煩。spring倡導的非侵入式就是這樣的一種思想,使用者可以在任何時刻引入或者移除Spring,而無需對程式碼邏輯進行深度修改。
Spring框架目前並不會單獨出現在JAVA工程中,通常是與SpringMVC,Hibernate或者mybatis一起出現,簡稱SSH或者SSM框架。使用上述框架的好處是上手十分迅速,就算是初學者也能夠在教程的指點下迅速部署好環境,快速開始開發工作。
-
6 # 三體藍色空間號
我看好多人都寫的很籠統,就是簡單列出Spring的特點,什麼解耦、spring aop、控制反轉、事務管理、非侵入式,讓新手看起來,不知所謂。我來說說:
就是之前物件依賴關係不用你來維護,由IOC容器來維護(物件間依賴關係不用解釋了吧,就是類與類之間的依賴關係,使用與被使用。舉個例子電器工作需要電,電器類與電類之間是依賴關係,之前這些要你自己去完成它們的依賴關係,有了IOC容器這工作就就交給IOC容器來完成。)
在白話一點解釋,兩個例項依賴關係,像兩個人,一個人要另一個人幫助,沒有spring的時候A要自己去聯絡B“來幫幫忙”,有了spring後,例項就不需要自己去建立依賴的例項,被呼叫依賴的例項自己就過來幫忙了。
AOP也很好理解,面向切面程式設計,就是把一些公共的功能提取出來,到你用的時候你從容器中拿出物件直接用就可以了。像什麼日誌,解析XML檔案什麼的,用的時候調出來就可以,不是那種做到哪一步該要做什麼就要自己去寫怎麼實現。
具體分類:
1)方便解耦,簡化開發Spring 就是一個大工廠,可以將所有物件的建立和依賴關係的維護交給 Spring 管理。2)方便整合各種優秀框架Spring 不排斥各種優秀的開源框架,其內部提供了對各種優秀框架(如 Struts2、Hibernate、MyBatis 等)的直接支援。3)降低 Java EE API 的使用難度Spring 對 Java EE 開發中非常難用的一些 API(JDBC、JavaMail、遠端呼叫等)都提供了封裝,使這些 API 應用的難度大大降低。4)方便程式的測試Spring 支援 JUnit4,可以透過註解方便地測試 Spring 程式。5)AOP 程式設計的支援Spring 提供面向切面程式設計,可以方便地實現對程式進行許可權攔截和執行監控等功能。6)宣告式事務的支援只需要透過配置就可以完成對事務的管理,而無須手動程式設計。
回覆列表
目前Java常用的開發框架有springmvc和spingboot,資料庫使用mybatis。使用這種組合框架能夠快速構建企業級的應用或結合微服務框架構建微服務應用。結合請求分發對映,物件注入等技術,以及強大的註解功能,讓開發變得很簡單!