Spring Boot 1.5.x 基礎學習示例


一、為啥要學Spring Boot?

  

  今年從原來.Net Team“”轉到了Java Team開始了微服務開發的工作,接觸了Spring Boot這個新瓶裝舊酒的技術,也初步了解了微服務架構。Spring Boot是Spring4之后整合的產物,它摒棄了原來Spring的一大堆的配置,采用了約定大於配置的方式,還是原來的配方,還是原來的佐料,讓各路開發人員能夠快速地使用Java開發微服務程序。其實,當我們了解了Spring Boot之后,會發現ASP.Net Core和Spring Boot很像,他們都是適合做微服務的技術。不過,對於Spring Boot的資料和相關的生態"看"起來要好一些(比如我現在公司已經沒有多少.Net的新項目了),對於.Net程序員來講,多掌握一門開發技術的需求越來越明顯。這兩年間,博客園的.Net程序員已有不少轉到了或者已經掌握了基於Java的微服務開發技術(Spring Boot & Spring Cloud),這也說明了市場的需求變化。對於我來說,雖然我不排斥Java也在積極學習Java,但我還是更愛.Net Core一些(沒辦法,C#用的最爽),可能這就是初戀的味道把。但是,我也強烈建議.Net程序員多掌握一門技術,特別是在當今Spring Boot等框架已經為我們降低了很多學習門檻的基礎上,更應該多多學習和吸收其他技術棧及生態圈好的東西來充實自己,進而獲得進一步的自我提升。

  在學習途中,我把自己做的Demo記錄下來上傳到了GitHub,也是因為在學習途中瀏覽的博客示例代碼很多由於版本過低及API變化無法正常運行,踩了一些坑之后把能夠正常運行的Code與各位分享,讓各位童鞋盡量少走彎路。

二、推薦學習資料

  (1)程序猿DD:《Spring Boot基礎教程》=> 我們項目組的指定學習資料,言簡意賅,點到即止

  (2)純潔的微笑:《Spring Boot 1.x 與 2.0 基礎教程》=> 可以作為程序猿DD的補充,且增加了很多2.0的內容

  (3)EdisonChou, 《Java微服務之Spring Boot on Docker》=> 將Spring Boot運行在Docker上,使用Docker Compose編排微服務

三、示例結構說明

  此示例項目主要基於程序猿DD的SpringBoot教程所做的學習實踐,基於SprintBoot 1.5.15版本,每個項目均演示了部分內容。由於程序猿DD的文章示例版本太舊,部分Code無法正常運行,所以在學習途中(非SpringBoot2.0版本的學習)可以參考本示例Demo來學習。

  

  下面是各個子項目主要演示的內容:

  • msadv1 : Hello World & 配置文件的使用(多環境配置文件的使用) & MVC Controller & 熱部署
  • msadv2 : 分層的CRUD RESTful API示例 & 單元測試(針對Controller和Service及Mock的使用)
  • msadv3 : 靜態資源的導入 & Thymeleaf模板的使用 & Swagger API Doc & 統一異常處理
  • msadv4 : Spring Security基本使用 & JdbcTemplate訪問數據庫 & Spring-data-jpa訪問數據庫
  • msadv5 : 多數據源配置(基於JdbcTemplate 與 基於Spring-data-jpa)
  • msadv6 : Redis & MongoDB 集成與基本使用
  • msadv7 : 整合 MyBatis & MyBatis 注解配置的使用
  • msadv8 : Spring Boot中的事務管理 & 使用Flyway管理數據庫版本
  • msadv9 : Spring Boot中的緩存注解 & 使用Ehcache作為緩存
  • msadv10 : 集成使用Redis作為緩存
  • msadv11 : 使用log4j記錄日志 & 多環境(dev,test,prod)不同日志(INFO,DEBUG,ERROR)級別的控制
  • msadv12 : 使用log4j實現http請求日志存入MongoDB & 動態修改日志級別(1.5.x新特性)
  • msadv13 : RabbitMQ的基本集成和使用
  • msadv14 : 使用@Scheduled創建定時任務 & 使用@Async實現異步調用
  • msadv15 : 使用@Async實現異步調用:自定義線程池
  • msadv16 : 使用@Async實現異步調用:ThreadPoolTaskScheduler線程池的優雅關閉
  • msadv17 : 使用@Async實現異步調用:使用Future & 定義超時
  • msadv18 : 實現郵件發送:簡單郵件、帶附件的郵件、帶資源的文件以及基於模板的郵件 & 使用spring boot actuator監控端點
  • msadv19 : 自定義啟動Banner & 使用Spring StateMachine框架實現狀態機 & 使用exclude排除不必要的自動化配置的加載

示例地址

  GitHub => https://github.com/EdisonChou/EDC.SpringBoot.Learning

推薦工具

  

  IDE => Intellij Idea Community 2018

  (PS: 如果是.Net程序猿想要學習SpringBoot,強烈建議更改快捷鍵與Visual Studio保持一致,這樣能加快開發效率,如不了解如何修改,可以參考鄒瓊俊《從.Net到Java - Idea and Start Spring Boot》)

  

  Plugin => 阿里巴巴代碼規約

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM