javascript
Spring精华问答 | 为何使用Spring?
Spring框架是一個開源的Java平臺,它提供了非常容易,非常迅速地開發健壯的Java應用程序的全面的基礎設施支持。今天就讓我們來看看關于Spring的精華問答吧。
1
Q:Spring的目標是什么?
A:Spring官方主頁(http://spring.io)有兩句話:這兩句話已經足以說明Spring的目標,它針對的領域是企業應用,這套框架構建的應用有著簡單、便攜、快速和靈活的特點。與EJB(Enterprise JavaBean,一個基于Java平臺的服務端組件框架)相比,它是一個輕量級的應用開發平臺。
2
Q:認識Spring
A:Spring是一個企業級應用開發平臺,到目前為止,圍繞它有一個較為完整且成熟的應用開發生態圈,在這個生態圈中,除了Spring核心項目以外,還有很多子項目。因此,理論上,可以使用Spring的生態圈技術來開發一套完整的應用系統。
盡管JDK提供了豐富的開發功能,但是它很難將一些基礎的組件塊構建成一個完整的框架,它把這個任務交給了開發者和工程師。盡管開發人員可以利用工廠、抽象工廠、創建者、裝飾器等設計模式將這些組件組合起來,但是其中的工作量是相當巨大的,特別是對于中小企業來說,根本沒有那么多資源來做這件事情。而Spring框架已經幫我們做好了這一切,Spring框架的控制反轉(IoC, Inversion of Control)組件以標準化的方式將這些分散的組件組合到一起,Spring使用了規范的設計模式,很容易將它集成到應用系統中。當前,大量的企業和機構在使用Spring框架。
3
Q:Spring的模塊
A:如上圖所示,Spring由20多個模塊組成,它們可以分為核心容器(Core Container)、數據訪問/集成(Data Access/Integration)、Web、面向切面編程(AOP, Aspect Oriented Programming)、設備(Instrumentation)、消息發送(Messaging)和測試(Test)。
4
Q:Spring框架中的單例Beans是線程安全的么?
A:Spring框架并沒有對單例bean進行任何多線程的封裝處理。關于單例bean的線程安全和并發問題需要開發者自行去搞定。但實際上,大部分的Spring bean并沒有可變的狀態(比如Serview類和DAO類),所以在某種程度上說Spring的單例bean是線程安全的。如果你的bean有多種狀態的話(比如 View Model 對象),就需要自行保證線程安全。最淺顯的解決辦法就是將多態bean的作用域由“singleton”變更為“prototype”。
Q:為何使用Spring?
A:Spring的IOC和AOP兩大核心功能可以大大降低應用系統的耦合性、簡化開發流程。Spring框架技術可在不同層次上起作用,比如IOC管理普通的POJO對象、AOP增強了系統服務和其它組件(事務、MVC、JDBC、ORM和遠程調用等)。Spring的一大特點就是基于接口編程,它是非侵入式的服務。用戶端綁定接口使用JAVA EE服務,而非直接綁定服務,而且應用也可以使用不同的服務(Hibernate、MyBatis等)。我們可以根據自己的需要,使用Spring的一部分服務,而不必使用完整的Spring系列項目。
小伙伴們沖鴨,后臺留言區等著你!
關于Spring,今天你學到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家搜集更多問題,投稿給我們!風里雨里留言區里等你~
福利
1、掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
2、公眾號后臺回復:白皮書,獲取IDC最新數據白皮書整理資料!
推薦閱讀:
屢試不爽的互聯網架構三大馬車!
2019年技術盤點容器篇(四):來自京東云的技術問答 | 程序員硬核評測
《長安十二時辰》科技梗揭秘!唐朝就能看到 5G 蹤影?
天才程序員: "開發 CryptoKitties 難不難? 只需掌握這3點..."
教你如何用Python實現文本摘要模型(附教程)
微軟 CTO 韋青:5G 與亞里士多德
什么限制了GNN的能力?首篇探究GNN普適性與局限性的論文出爐!
真香,朕在看了!
總結
以上是生活随笔為你收集整理的Spring精华问答 | 为何使用Spring?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5G 来了,我们可以做什么?
- 下一篇: 塑料太阳眼镜中的金属铰链需要测镍释放吗