[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] - 简介和为什麽你需要


<<:  DAY01 - 在开始之前

>>:  Day 4.环境预备备(二)- Node.js

成员 24 人:来玩一场「收尾游戏」吧!

「责任感,就是我们与猫的区别。」 如果有同事提离职了, 如何妥善处理离职同仁的交接问题呢? 没有要慰...

30天轻松学会unity自制游戏-开启死亡画面

先来制作死亡後开启死亡画面,把之前死亡画面的Active(开启)暂时先关闭,等Player死亡时候才...

OpenStack Neutron 介绍 — OVS Provider Networks

本系列文章同步发布於笔者网站 上篇介绍了 Neutron 使用 Linux Bridge plug-...

初探 超文本传输协定 HTTP

图片来源:MDN HTTP是网路世界资讯交换的基础,这项发明一开始是为了提供发布和接收HTML页面...

最短路径问题 (6)

10.8 更多的 Leetcode 例题 Leetcode 1129. Shortest Path ...