首頁>Club>
2
回覆列表
  • 1 # 上路的狗哥

    明明一個很輕量級的框架,卻給人感覺大而全,這就是它的缺點。Spring的核心概念是啥,最主要的,IoC和AOP,這兩個核心服務的物件是啥,就是那堆beans,Spring我們可以理解為就是存放這些bean的容器,它最核心的就幹這些事。IoC幹嘛的,就是為了讓開發者關注的重心放在如何使用這些bean。不管bean怎麼來,只要@Autowired就給我老老實實出現,讓我調介面就好,不需要每次用之前都要手動構建,儘量減少手動例項化bean的次數。Spring Boot以前,主要在beans.xml中註冊bean,Spring Boot的話只要在Configuration中定義一個@Bean方法即可,就為了做好這件事,Spring弄了多少東西,BeanDefinition,BeanFactory,FactoryBean,然後Bean的生命週期介面好幾個,Aware介面又好幾個,等等,然後是AOP,AOP是很好的特性,在Spring中其主要目的就是以一種非浸入的方式對bean進行擴充套件,看到沒,又是bean。為了對bean支援,Spring弄了一套AspctJ的子集,既有Java原生的介面代理,又有更加靈活的Cglib,光是AOP的概念就不少,更不要說實現的原理。簡單的大e家都可以說出一二三四五,但深入細節誰有把握?所以,Spring就是圍繞著bean展開的,它主要就是作為bean的容器,在這個基礎上,有了SpringMVC,有了JPA,有了Cloud,有了Data Flow,以及其他模組。但這些模組的本質,不全是Spring,比如JPA,核心還是Hibernate,Cloud,核心是另外一套微服務框架。Spring就好比膠水,透過bean把這些模組粘在一起。實踐過程中,反覆的提醒自己,不要用Spring玩花,讓它老老實實的做bean的容器就好了。我這麼說,不看原始碼,你會覺得Spring重嗎?可就這麼些個東西,Spring弄出了多少名堂。隨便找個地方打斷點,呼叫就不下二十來層,在現在這種強調輕量化服務的大環境下,不被吐槽才怪。當然,我認為也不能全怪Spring。Java這門語言動態性本來就是它的弱項,Spring能把Java包裝的像個動態化的語言已經蠻拼了。Spring背的最大的鍋,我認為就是J2EE,就憑那套在當時有一定價值但放現在已經淘汰的標準,沒有Spring,Java的企業級市場未必有今天。不過話說回來,從學習企業級Java開發的角度看,Spring的程式碼依然是教科書般的程式碼。面向物件封裝,程式設計原則,設計模式,都是具有很高的參考價值。如果你才開始,我建議先沉住氣,老老實實的敲程式碼,看文件,不管最後還在不在Java圈,將來一定會收穫不小。有時候,你不復雜一些,又怎麼能體會到簡單的價值呢?

  • 2 # 網路圈

    在Spring沒有推出之前,用Java開發專案是相當複雜和繁瑣的,Spring一經推出就火了起來,給人的感覺它就像是一個保姆,什麼事都幫我們打理好了,我們只需要專注業務即可。雖說Spring是一款優秀的框架,但並不代表它沒有缺點。

    Spring是顛覆性框架

    Spring是一款開源的、輕量級的DI和AOP容器框架,它是非侵入式的(建立物件也不是使用傳統的new方式而是採用依懶注入方式),將物件間的依懶關係交給Spring管理,降低了系統間的耦合性,基於Spring開發的應用基本上並不依懶於Spring類。

    Spring框架的缺點

    1、明明定位是一個輕量級框架,給人的感覺卻是大而全的

    Spring最初定位是輕量級框架(實際上它的整體框架是很複雜的),但隨著它的發展,給人的感覺是越來越複雜了。Spring本質上是圍繞著Bean管理來展開的,它其實就是管理Bean的容器,然後又有了Spring MVC、JPA、Spring Cloud、Spring Boot 等,甚至有人說Spring是過度設計後的產物。

    2、Spring更新太快、各種依懶包的更新影響其相容性

    不同版本的Spring對包的依懶支援是不同的,這樣會導致專案依懶於特定版本的Spring,如果後期有移植需求,可能會存在相容性問題。

    3、XML配置繁瑣

    Spring採用XML來定義配置,說實話XML真的不適合作為配置檔案格式。另外Spring專案配置要消耗很多時間而且並不統一,有時看著一堆配置頭皮發麻。

    但從整體上說,Spring缺點比起其優點那是微不足道的,Spring目前地位依舊無法撼動。

  • 中秋節和大豐收的關聯?
  • 為什麼說摩羯座虐獅子座,誰能告訴我這個,我很不解?