2021年5月30日 星期日

Java程式設計師必學Spring Framework,最流行也最多人使用的微服務框架之一!

TIOBE公布了2021年4月份程式語言排行榜,雖然短期內Java降至為第二名,但長期看起來,程式語言的龍頭依然是Java,Java依舊是程式語言中的佼佼者!




Spring Framework是目前最蔚為流行的Java框架,也是最多人使用的微服務框架之一,如果你已經是Java程式設計師,卻還沒涉略Spring Framework,快來看看Spring Framework有哪些特色!

💧Spring Framework 歷史

在2002年的11月份,Rod Johnson發表一本書名為《Expert One-on-One J2EE Design and Development》,書中有Spring框架,最初這個框架叫做“Interface 21 framework”,後來Yann Caroff提議把名稱為Spring(春天),代表一個新的開始,結束傳統J2EE開發。Spring Framework正式名稱誕生!

2017年9月 Spring Framework 正式發布了 5.0 版本,此版本引入了 Spring WebFlux,一個高效能、回應式、非同步的 Web 框架。Spring 5.0 重點加強了對函式語言程式設計、回應式程式設計(reactive programming)的支援能力,是一個非常大的進步。

2002年的Spring Framework一書已經讓Spring Framework一炮而紅,2017年的5.0版本更讓Spring Framework引起廣泛Java程式設計師的討論與使用,漸漸成為Java程式設計師最愛使用的框架之一!


💪為什麼你應該學Spring Framework


更穩定的架構:

Spring Framework不僅使用簡單,並且穩定,透過Spring Framework所開發的系統,更具穩定性,可以讓程式設計師花費更少時間維護。

使用共同框架帶來的效率:

共同使用Spring Framework框架開發系統,可以降低每個程式設計師個人習慣及喜好帶來的風險,增加團隊合作的效率,同時增加系統開發的效能與穩定性。


💪Spring Framework的特色

1.Core technologies(核心技術):dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP.

2.Testing(易於測試):mock objects, TestContext framework, Spring MVC Test, WebTestClient.

3.Data Access(資料存取):transactions, DAO support, JDBC, ORM, Marshalling XML.

4.Spring MVC and Spring WebFlux web frameworks.(Spring MVC和 Spring WebFlux Web 框架)

5.Integration(支援更多應用程式):remoting, JMS, JCA, JMX, email, tasks, scheduling, cache.

6.Languages(支援更多程式語言):Kotlin, Groovy, dynamic languages.


☝Spring Framework的優點

1.易於解耦,開發更容易

Spring提供的IoC容器,可以將所有物件和彼此的依賴關係交給Spring管理,讓程式設計師更專注於更上層的開發。

2.支援AOP

Spring提供的AOP功能,就是將那些與業務無關,卻為業務模組所共同呼叫的邏輯或責任分開封裝起來,便於減少系統的重複代碼,降低模組間的耦合度,並有利於未來的可操作性和可維護性。

3.支援事務管理

透過Spring,我們可以通過聲明式方式靈活地進行事務的管理,提高開發效率。

  • 跨不同事務API(如:Java事務、JDBC、Hibernate和Java Persistence API事務)
  • 支援聲明式事務
  • 與諸如JTA之類的複雜事務API相比,用於程序化事務管理的API更簡單
  • 與Spring的資料存取抽象出色地整合

4.易於測試

可以用非容器依賴的編程方式進行幾乎所有的測試工作,在Spring裡,測試不再是昂貴的操作,而是隨手可做的事情。例如:Spring對Junit4支持,可以通過註解方便的測試Spring程序。


✌Spring Framework的兩大核心運用:

AOP:面向切面編程(Aspect-Oriented Programming, AOP)

面向切面編程(Aspect-Oriented Programming, AOP) 就是將那些與業務無關,卻為業務模組所共同呼叫的邏輯或責任分開封裝起來,便於減少系統的重複代碼,降低模組間的耦合度,並有利於未來的可操作性和可維護性。

舉個例子:

如果你每次要吃西餐,你都要準備刀跟叉子,但你如果使用框架以後,你只要吃就好了!不用準備刀和叉子,因為Spring Framework幫你準備好了!

Spring Framework最重要的功能之一,你不需要自己建置物件;一般來說,如果你已經開發一個項目,你在水果項目中建置了蘋果,也在蔬菜建置了的蘋果,有一天你想把蘋果的名稱改成番茄,你就要找到水果和蔬菜的項目,把蘋果改成番茄,假設你有一百個項目都有蘋果,那真的會改到發瘋,Spring Framework可以讓你不用這麼累!

IoC:控制反轉(IOC,Inverse Of Control)

控制反轉(IOC,Inverse Of Control),即把建立物件的權利交給框架,也就是指將物件的建立、物件的儲存、物件的管理交給了Spring容器。Spring容器是Spring中的一個核心模組,用於管理物件,底層可以理解為是一個Map集合。

舉個例子:

今天小明需要一個水壺,而小花她也剛好賣一個水壺,小花跟小明只需要找到第三方,我要買、我要賣水壺即可!相當於程式內部開放接口,小花跟小明都不需要互相依賴,只有在進行交易的時候才需要透過第三方產生連結。這樣的好處是小花跟小明都不需要見面,也不需要互相信任,他們只要相信第三方就好了,因為都是由第三方負責聯繫。這就是IoC的核心思想,現實生活中有許多例子例如第三方支付LinePay、或者是Head Hunter等等。


看完這麼多Spring Framework帶來的好處,絕對是萬中選一的Java程式設計師必學框架!


恆逸『使用Spring Framework 5開發企業級應用程式』針對Java程式設計師規劃出一門Spring Framework 課程,課程內容包含Spring 元件與IoC容器、Spring Boot、Spring AOP、Spring Data JPA、Spring Web MVC等重要Spring Framework重點技術。

透過課程您將學習到下列技術:

  • 認識Spring Framework的架構
  • 認識何謂Spring元件與IoC(Inversion of Control)容器
  • 學會Spring的Dependency Injection
  • 認識Spring AOP(Aspect Oriented Programming)的應用
  • 學會Spring Template的應用
  • 認識Spring Boot如何簡化Spring應用程式的開發
  • 學會利用Spring MVC開發Web應用程式

💬課程連結

[SprF]使用Spring Framework 5開發企業級應用程式

💬相關課程介紹


0 意見:

張貼留言