大家好啊,今天棧長給大家分享下我的開發曆程中,我知道的那些被淘汰的技術或者架構,有些我甚至都沒有用過,但我知道它曾經風光過。
廢話不多說,下面我要開始吹了……
1、Swing
下面這個是用 swing 開發的:

圖來源網絡,有沒有似曾相識的感覺?懂的自然懂!
棧長去年中秋也用過 swing:
這個中秋,我用 Java 畫了一個月餅!
Swing 算是 Java 早期代替 AWT 的桌面應用 GUI 開發工具包,一個聽到就已經淘汰的技術,給我的感覺就是醜醜醜!現在與 AWT 一起在時間這個長河裡長眠。
如果 Java GUI 庫發展曆程分為三代,可以是:
AWT > SWING > JAVAFX
随着 JavaFx 的釋出,加速 SWING 的被淘汰。下面這個是用 JavaFx 開發的:
圖來源:zhihu.com/question/54498643/answer/271632290
現在 JavaFx 也有十來年了,雖然這篇文章也在說 JavaFx 淘汰了的,隻是現在桌面應用不是主流吧,我也沒用過不敢亂說,JavaFx 在桌面應用開發應該還是有一席之地的。
2、JSF
JSF:Java Server Faces
JSF是一種用于建構 Java Web 應用程式的表現層架構,和 Struts 一樣性質的架構。
國内用 JSF 的比較少,有也是老系統了,國外應該還有用 JSF 的,不過随着 Spring MVC, Spring Boot 的橫空出世,JSF 應該也是過時的技術了。
3、EJB
EJB也是個神器,隻見其影,未見其身。前些年,在網上各個面試題還有它的身影,現在估計很難見到了。
EJB:Enterprise Java Beans,即:企業Java Beans
Sun公司釋出的文檔中對 EJB 的定義是:EJB 是用于開發和部署多層結構的、分布式的、面向對象的 Java 應用系統的跨平台的構件體系結構。
簡單來說,EJB就是部署分布式系統用的,就是把A程式放在伺服器上,通過B用戶端來調用,并且是跨平台的。
圖來源:oreilly.com
因為 EJB 過于複雜和笨重,調試非常麻煩,現在都被輕量級的 RPC 架構(Dubbo)及輕量級 Restful 形式的分布式架構 (Spring Cloud) 替代了。關注微信公衆号Java技術棧在背景回複分布式可以擷取分布式架構系列教程。
4、JSP
JSP 全稱:Java Server Pages,是由早期的 Sun 公司釋出的一種動态網頁開發技術,即在 HTML 網頁代碼中嵌入 JSP 标簽的 Java 代碼實作動态網頁。
JSP 代碼示例:
<html>
<head>
<title>微信公衆号Java技術棧</title>
</head>
<body>
<%
out.println("Hello, Java技術棧!");
%>
</body>
</html>
這個示例隻是簡單的調用 JSP 的内置 out 對象在頁面輸出展示一句話。
JSP 的本質其實就是 Servlet,JSP 檔案被編譯之後,就變成了 Servlet Java 類檔案,因為 JVM 虛拟機隻能識别 Java 位元組碼檔案,而不能識别 JSP 檔案。
在 JSP 的時代,那時候還沒有前後端分離的說法,JSP 可以包攬全部,即實作靜态頁面,又實作動态代碼邏輯,全部都在一個 JSP 檔案裡面。這樣,一個程式員既是前端,又是後端。
但是,現如今在前後端分離的熱潮下,前後端分工明确,後端隻負責業務邏輯的接口開發,前端負責調用後端接口再做頁面資料封裝展示,JSP 幾乎是被淘汰了。
雖然 JSP 是被前後端分離取代了,但并不說明 JSP 沒有用了,不是所有系統都是前後端分離的,比如說一個隻有兩三個頁面的動态系統,JSP、Servlet足以搞定,你總不能上頁面模闆引擎、各種架構,或者再上前後端分離吧?
5、Struts
Struts2 那些年可謂是風光無限啊,Struts2 + Spring + Hibernate 三大架構一起組成了 "SSH"————牛逼哄哄的 Java Web 架構三劍客。
Struts 這篇就不多說了,具體看這篇:Struts2 為什麼被淘汰?
6、Memcached
Redis 這幾年的大熱,現在已經替代 Memcached 成為緩存技術的首要中間件,作為大廠的帶頭兵,在 BAT 裡面,Redis 也已經逐漸取代了 Memcached,廣泛使用 Redis 作為緩存應用方案。
為什麼 Redis 能後來居上呢?關注微信公衆号Java技術棧在背景回複redis可以擷取 Redis 系列教程、
1)速度更快
Memcached 使用的是多線程模型,既然是多線程,就會因為全局加鎖而帶來性能損耗。而 Redis 使用的是單線程模型,沒有鎖競争,速度非常快。
相關閱讀:Redis 到底是單線程還是多線程?
2)資料類型更豐富
Memcached 資料類型非常單一,隻支援 String 資料類型,在業務實作上就非常有瓶頸。
而 Redis 支援 string(字元串)、hash(哈希)、list(清單)、set(集合)、zset(sorted set:有序集合) 等……豐富的資料類型可以讓 Redis 在業務上大展拳腳。
這也是 Redis 能代替 Memcached 最重要的原因之一。
相關閱讀:Redis 的 8 大應用場景!
并且,Memcached 值最大上限為:1M,而 Redis 最大可以到:1GB。
3)資料持久化
Memcached 不支援持久化,Redis 支援。
緩存伺服器斷電後,Memcached 的資料是不能恢複的,而 Redis 可以将資料保久化在磁盤中,伺服器重新開機的後可以加載再次使用,不會造成資料斷電丢失。
比如,有些資料是直接放在緩存資料庫中的,其他地方可能沒有備份,如果丢失了,那可能會造成業務影響,這也是 Redis 非常有用的一個保障特性。
總結
好了,今天棧長列舉了 6 個經典的即将被淘汰的技術或架構,雖然這些技術現在面臨淘汰,但它們曾經也風光過,值得敬畏。
另外,雖然這些技術要被淘汰了,但不說明它們沒有用了,它們依然在被運用,隻是現在不是主流了。
最後,在大家的開發曆程中,你都遇到過哪些曾經很風光,但現在即将被淘汰的技術呢?歡迎大家留言分享讨論~