iT邦幫忙

2021 iThome 鐵人賽

DAY 1
0
Software Development

Wow ! There is no doubt about Learn Spring framework in a month.系列 第 1

[Day-01] - Learn Spring Framework In One Month. ​

本文章「Learn Spring Framework In One Month」目的在提供讀者可快速入手,Spring是一個輕量級Java開發框架,故在於基礎架構分面,本篇文章分為核心概念、維運概念及Web概念的功能特性,融合各類知識與情境性的運用。提供各界開發者可成為相關的開發文章。

什麼是Spring框架?

最早由Rod Johnson創建,是一個分層的JavaSE/EE full-stack(SSR)輕量級開源框架,目的在於解決企業級應用開發的業務邏輯層和其他各層的耦合問題。Spring Framework至今已集成了20多個模塊,所有核心模組分佈在核心容器(Core Container)區塊、數據接取/集成(Data Access/Integration)層級、Web層、AOP(Aspect Oriented Programming,面向式切面的編譯)模組、植入(Instrumentation)模塊、消息傳輸(Messaging)和測試(Test)模組當中。

本文章將會探討哪些技術

將模組分為以下部分

  1. Spring Boot
  2. Spring MVC
  3. Spring Reactor
  4. SpringFox Swagger
  5. Spring Actuator
  6. Spring Test
  7. JUnit
  8. Mockito-all
  9. 結語

前幾篇的介紹偏向簡單入門,令讀者可以打好基礎,會提供多種情境實例,讓讀者多一些開發範例可參考,提供未來個來開發新手快速上手。

本篇文章偏向基礎教學,不會過度的深入探討每項模組設計的原理。但會粗略的稍微介紹各類模組背景及原理,所有技術來源皆為過往業界的技術經驗、書籍資訊來源
或個人的side-project經驗來分享。學習完後,讀者能夠掌握基本的Spring框架開發架構,也可提升自身對Java Spring的開發框架進一步認知。

Java 開發框架這麼多,為何選擇Spring框架?

目前主流框架有Struts 2、Spring 5框架兩套,我們將根據SSR架構進行安全性、彈性化、便利性及維運性的開發效率分析,滿分為5分(提供下表作參考),Struts-2 是一套採用Servlet 套件的MVC(Model View Controller)架構框架,首先,在於安全性,皆透過既有的Filter介面進行實現繼承,而Spring框架是一套輕便型的框架,提供了多種彈性的Spring Security套件,支援多種方式整合進行實現,第二,彈性化議題,Struts-2使用XML檔案及註解(Annotation)去配置,並在每個ActionSupport都須配置對應的行為路徑(Action Path)的XML檔,Spring使用註解(Annotation)及依賴性注入(DI,Dependency Injection)進行對應Templates內的各項html文檔,但超連結文檔相對重要,故尚缺乏部分彈性,相對與前者相較來的便利許多,減少許多設定檔的負擔,第三,便利性議題,Struts-2相較Spring而言,最不便利,各類物件關聯性皆透過XML組態檔進行控制,故較不建議採用,最後,依據維運性而言,Struts已有一套制式化的架構非常不平易近人,相較Spring 已採用領域驅動設計更便於支援多種套件整合,便於我們進行各類橫向(Cross-cutting)切割任務運作,故我們選擇最佳方案為Spring framework。

Struts 2 Spring 5
安全性 4 5
彈性化 3 4.5
便利性 2 5
維運性 3 4

我們需要具備哪些基本工具及基本知識

首先,你必須要有一台電腦,你說對不對嗎? 對~所以我們這邊使用MAC筆記型電腦

No. Tools/Framework Name
1. Java 15
2. Gradle 6.7.1
3. Docker 20.10.7
4. Postgresql 10
5. Spring Framework
6. Intellj. IDEA.2021 (Optional)
7. iTerm 2 (Optional)
8. Vue 2 Framework (Optional)
9. Postman 7.2.0 (Optional)

前提摘要

本技術分享文章來源皆來至小編近十幾年來的實務與業界辛路歷程、書刊來源及網路文章分享整理後所得,各篇文章結構分為前提摘要、原理介紹、架構內容敘述、範例分享及參考來源,歡迎各讀者透過分享範例與對照文中的敘述,來進一步來探討未來的發展與概況。

Reference Url:

Spring MVC與Struts2的比較

Introduction to Struts in Java

[Domain Driven Design] - 簡介和為什麼你需要


下一篇
[Day-02] - Annotation Modulize Introduction
系列文
Wow ! There is no doubt about Learn Spring framework in a month.30

尚未有邦友留言

立即登入留言