7
篩選框架必要功能 | iThome (www.ithome.com.tw)
IngramChen 積分 3 編輯於

作者可以做到 篩選 這件事,是因為 Spring 有幾項優點

  • API 成熟穩定。即使現在已經 spring 4/5 了,還是可以用 2.x 版的方法去改寫,2.x 版到 5.0 中間隔了十年啊!

  • 可以漸進式的移植。原本 servlet 的寫法,改成 spring controller 的皮後,大部份的舊程式還能動,你不用一次全部改完,可以分好幾個批次做。

  • spring 是個高度模組化的 framework,你可以只用他的 mvc 就好了,其他都可以放著先不管。也因為如此,你才有機會 篩選,只導入一部份你想要的功能

不是什麼 framework 都能這樣玩,例如 Angular 就沒有上述的任何優點。想導入嗎?那就全部重寫吧

natsu 積分 0 編輯於

API 成熟穩定。即使現在已經 spring 4/5 了,還是可以用 2.x 版的方法去改寫,2.x 版到 5.0 中間隔了十年啊!

API 定得好真的蠻重要的,才不用一直改寫...

原來 Spring 已經發展十年了啊... 真的很厲害

caterpillar 積分 0 編輯於

作者可以做到 篩選 這件事,是因為 Spring 有幾項優點 …

是啊!文件裏有寫…

框架應該要有個最小集合,而這個最小集合,最好可以基於開發者既有的技術背景,在略為重構(原型)應用程式,以使用此最小集合後,就能使應用程式運行起來,之後隨著對框架認識的越多,在判定框架中的特定功能是否適用,之後,再逐步重構應用程式能使用該功能。

natsu 積分 0 編輯於

在工作也暫時用不上的情況下,被我暫時放生的框架之一是Spring,在Spring 2.0 之後就不常接觸。過了多年,現在5.0都出了,雖然大致知道主打的特點是什麼,但並未去玩弄過細節。

我也是在 Spring 2.0 之後就不常接觸了,直到最近的案子有機會用到 Spring 4.x。

Spring 4.x 可以用 @Controller@Service@Respository 等 annotation 真的蠻方便的,不用 extend 或 implement 就可以讓類別擔任各自的角色。

不過就是有些細節不太了解,像是 @Controller 的 method 若使用 ModelAndView 取值會是 null,但用 @ModelAttribute 卻取得到值。

另外,不知 Caterpillar 是否有出 Spring 5.x 技術手冊的打算? XD

caterpillar 積分 2 編輯於

目前沒有,倒是最近把《Servlet & JSP 教學手冊》改版並更名為《Servlet & JSP 技術手冊》,最後用上了 Spring 5,基本上就是我這篇文章的過程實現,把書裏一路用 Servlet/JSP 發展起來的應用程式範例,重構到可以用上 Spring MVC 的最小集合,然後注入元件、逐漸去除 Servlet API、抽出表單物件、改用 Thymeleaf、使用 JdbcTemplate、簡化 Java Mail 等…

能夠漸進式移植的話,目標比較明確,這樣瞭解 Spring 比較有意義,我個人是覺得,這些功能拆開來說明的話會很空虛。

姑且當成 Spring 技術手冊借殼還魂吧!…XD

natsu 積分 0

倒是最近把《Servlet & JSP 教學手冊》改版並更名為《Servlet & JSP 技術手冊》

剛剛 google 了一下... 看來這本書還沒上市...

把書裏一路用 Servlet/JSP 發展起來的應用程式範例,重構到可以用上 Spring MVC 的最小集合,然後注入元件、逐漸去除 Servlet API、抽出表單物件、改用 Thymeleaf、使用 JdbcTemplate、簡化 Java Mail 等…

Servlet/JSP + 重構 + Spring,這本書未免也太超值!

能夠漸進式移植的話,目標比較明確,這樣瞭解 Spring 比較有意義,我個人是覺得,這些功能拆開來說明的話會很空虛。

這需要 programmer 有時間去了解這個過程... 以及上面老闆的支持...

caterpillar 積分 1

因為還沒完稿,大概要到五月才會上市。