精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

難以置信!我用一個 Java 類替換了整個后端,還真的跑起來了

開發 后端
在軟件開發領域,我們往往被各種框架、層次化架構、復雜的配置文件包圍。Spring Boot、微服務、DTO、Mapper、Docker……這些東西很強大,但在某些小項目里,它們帶來的復雜度可能遠遠超過了項目本身。

在軟件開發領域,我們往往被各種框架、層次化架構、復雜的配置文件包圍。Spring Boot、微服務、DTO、Mapper、Docker……這些東西很強大,但在某些小項目里,它們帶來的復雜度可能遠遠超過了項目本身。

我曾經突然冒出一個瘋狂的想法:如果只用一個 Java 類,就能實現一個完整的后端服務,會怎么樣?

聽上去像笑話,對吧?結果我真的試了一下,意外發現:不僅能跑,而且對快速驗證原型非常好用。 當然,這不是鼓勵大家拋棄架構,而是一次“去除繁雜、回歸本質”的嘗試。正如一句老話說的:“大道至簡。”

故事的起點

一切從一個小型的筆記應用開始。需求極其簡單:

  • 保存筆記
  • 獲取筆記
  • 修改筆記
  • 刪除筆記

換句話說,就是一個標準的 CRUD 系統。 按照傳統做法,我會:

  • 起一個 Spring Boot 項目
  • 定義實體、DAO、Service、Controller
  • 加 DTO、Mapper
  • 寫配置文件
  • Docker 打包部署

但這對一個微型項目來說,顯然是“大炮打蚊子”。于是我自問:

“能不能用一個類就把這些搞定,而且還能保持一定的可維護性?”

執行計劃

我設定了幾個原則:

  • 使用 Java 自帶的 HttpServer(不依賴 Spring Boot)
  • 數據存儲放內存里,用一個 Map 就夠
  • 所有邏輯放進一個類,但結構要清晰
  • 提供標準 RESTful 接口,前端能直接消費

目錄結構非常干凈:

/projects/one-class-backend/src/main/java/com/icoderoad/notes/NoteServer.java

單類后端實現

package com.icoderoad.notes;


import com.sun.net.httpserver.HttpServer;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;


import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;


public class NoteServer {
    private static Map<Integer, String> notes = new HashMap<>();
    private static int idCounter = 1;


    public static void main(String[] args) throws IOException {
        HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
        server.createContext("/notes", new HttpHandler() {
            @Override
            public void handle(HttpExchange exchange) throws IOException {
                String method = exchange.getRequestMethod();
                switch (method) {
                    case "GET":
                        handleGet(exchange);
                        break;
                    case "POST":
                        handlePost(exchange);
                        break;
                    case "PUT":
                        handlePut(exchange);
                        break;
                    case "DELETE":
                        handleDelete(exchange);
                        break;
                    default:
                        exchange.sendResponseHeaders(405, -1);
                }
            }
        });
        server.setExecutor(null);
        server.start();
        System.out.println("Server started on port 8080");
    }


    private static void handleGet(HttpExchange exchange) throws IOException {
        String response = notes.entrySet()
                .stream()
                .map(e -> e.getKey() + ": " + e.getValue())
                .collect(Collectors.joining("\n"));
        sendResponse(exchange, response);
    }


    private static void handlePost(HttpExchange exchange) throws IOException {
        String body = new String(exchange.getRequestBody().readAllBytes());
        notes.put(idCounter++, body);
        sendResponse(exchange, "Note added");
    }


    private static void handlePut(HttpExchange exchange) throws IOException {
        String[] parts = new String(exchange.getRequestBody().readAllBytes()).split(":", 2);
        int id = Integer.parseInt(parts[0].trim());
        String note = parts[1].trim();
        if (notes.containsKey(id)) {
            notes.put(id, note);
            sendResponse(exchange, "Note updated");
        } else {
            sendResponse(exchange, "Note not found");
        }
    }


    private static void handleDelete(HttpExchange exchange) throws IOException {
        String body = new String(exchange.getRequestBody().readAllBytes());
        int id = Integer.parseInt(body.trim());
        if (notes.remove(id) != null) {
            sendResponse(exchange, "Note deleted");
        } else {
            sendResponse(exchange, "Note not found");
        }
    }


    private static void sendResponse(HttpExchange exchange, String response) throws IOException {
        exchange.sendResponseHeaders(200, response.length());
        OutputStream os = exchange.getResponseBody();
        os.write(response.getBytes());
        os.close();
    }
}

運行邏輯解析

內置 HTTP 服務器

HttpServer 來自 com.sun.net.httpserver,無需任何第三方依賴:

HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);

瞬間就能起一個 8080 端口的 HTTP 服務。

請求路由

所有 /notes 請求走一個 HttpHandler,再根據 GET/POST/PUT/DELETE 分發。

內存存儲

private static Map<Integer, String> notes = new HashMap<>();

每條筆記有一個自增 ID,完全夠小項目用了。

 CRUD 邏輯

  • POST → 新增筆記
  • GET → 查詢筆記列表
  • PUT → 修改筆記內容
  • DELETE → 刪除指定 ID 的筆記

測試接口

# 新增筆記
curl -X POST http://localhost:8080/notes -d "買牛奶"


# 獲取所有筆記
curl http://localhost:8080/notes


# 修改筆記
curl -X PUT http://localhost:8080/notes -d "1: 買咖啡"


# 刪除筆記
curl -X DELETE http://localhost:8080/notes -d "1"

收獲與不足

優點:

  • 啟動極快(100ms 內)
  • 無框架開銷,零依賴
  • 部署就是一個 .class 文件
  • 非常適合原型開發

缺點:

  • 無持久化,重啟數據丟失
  • 無鑒權,誰都能訪問
  • 無校驗,臟數據隨便進
  • 不適合高并發

潛在改進方案

  • 引入 SQLite 文件存儲
  • 加上基礎 Token 鑒權
  • 返回 JSON 格式,而不是純文本
  • 增強錯誤處理機制

適用場景

可以用的地方:

  • Hackathon 快速原型
  • Demo 演示
  • 本地小工具
  • 教學/實驗

不推薦的地方:

  • 企業級系統
  • 高流量網站
  • 涉及敏感數據的場景

經驗總結

這次實驗讓我重新認識了 Java:

  • 框架固然重要,但 Java 本身就足夠強大
  • 小項目過度設計,往往是浪費時間
  • 簡單起步,再逐步復雜化,往往比一上來就堆滿技術更高效

結語

我不會真的在生產里上一個“單類后端”,畢竟架構是為了長遠穩定。但這個過程提醒我:有時候最好的解決方案,就是去掉那些不必要的復雜性。

下次當你要做一個小工具時,別急著起 Spring Boot。 也許,一個 NoteServer.java 就能讓你秒起后端。

今天就講到這里,如果有問題需要咨詢,大家可以直接留言或掃下方二維碼來知識星球找我,我們會盡力為你解答。

責任編輯:武曉燕 來源: 路條編程
相關推薦

2009-04-29 14:40:17

2022-01-10 10:23:07

瀏覽器Vitenode

2012-05-09 10:32:28

HTML5

2023-08-03 09:02:32

LangChain開發GLM

2021-03-04 19:29:28

程序員Unix系統

2017-11-17 15:25:02

Java線程安全

2022-07-29 12:09:21

6G5G通信

2023-12-04 08:33:05

2015-11-19 09:29:21

docker

2023-03-02 23:09:53

Node.jsC++JS

2023-01-31 07:42:29

代碼JDKMaven

2011-05-04 11:26:47

優化

2021-01-22 14:03:34

Flutter系統鴻蒙

2010-07-13 09:31:08

RubyRuby on Rai

2025-05-28 04:00:00

谷歌AI編碼助手

2024-05-27 09:01:22

2021-01-12 11:12:58

大數據智慧交通

2022-12-06 09:03:44

代碼fork系統

2017-05-17 13:21:36

深度學習機器學習算法

2015-08-04 17:46:19

戴爾anycloud云計算
點贊
收藏

51CTO技術棧公眾號

free性欧美| 超碰福利在线观看| 久久一区二区中文字幕| 欧美一区二区三区精品| 国产午夜大地久久| 色的视频在线免费看| 国产精品综合一区二区| 97超级碰碰碰| 波兰性xxxxx极品hd| 7777精品| 在线观看视频一区| 成人在线免费高清视频| 精华区一区二区三区| 国内精品免费在线观看| 欧美一级片一区| 加勒比婷婷色综合久久| 九色精品91| 亚洲精品在线观| 91高清国产视频| 国产直播在线| 亚洲日本乱码在线观看| 欧美日韩精品一区| 精品人妻一区二区三区蜜桃| 久久久蜜桃一区二区人| 九色精品美女在线| 国精产品一区一区| 免费久久久久久久久| 日韩欧美国产综合| 亚洲午夜激情影院| 春暖花开亚洲一区二区三区| 亚洲成人福利片| 9l视频自拍9l视频自拍| аⅴ资源新版在线天堂| 97se狠狠狠综合亚洲狠狠| 成人蜜桃视频| av免费观看在线| 久久国产精品第一页| 国产成人97精品免费看片| 日韩精品久久久久久久| 欧美福利电影在线观看| 精品国产美女在线| 国产aaaaaaaaa| 欧美三级美国一级| 亚洲欧美精品在线| 免费在线观看成年人视频| jizz国产精品| 欧美成人激情免费网| 中文字幕第一页在线视频| 日韩国产网站| 在线亚洲欧美专区二区| 激情综合在线观看| 小视频免费在线观看| 五月天一区二区| 欧美a v在线播放| 国产高潮在线| 好吊成人免视频| 成人在线看视频| 二吊插入一穴一区二区| 欧美中文一区二区三区| 亚洲乱码国产一区三区| 国产第一亚洲| 日韩三级av在线播放| 91超薄肉色丝袜交足高跟凉鞋| 一区二区网站| 亚洲激情小视频| 97伦伦午夜电影理伦片| av一区二区在线观看| 综合网日日天干夜夜久久| 日韩一级片在线免费观看| 久久国产电影| 欧美成人精品在线播放| 免费在线一区二区三区| 亚洲乱亚洲高清| 日本高清不卡的在线| 中文字幕制服诱惑| 国产成人精品亚洲午夜麻豆| 99久久精品免费看国产四区| 国产高清免费在线观看| 国产成人精品免费在线| 不卡的av一区| 亚洲AV无码一区二区三区性| 99久久精品国产观看| 久久伦理网站| 国产h在线观看| 国产精品美女久久久久久久久 | 久久久久在线视频| 蜜桃伊人久久| 国产精品欧美一区二区| 国产精品综合在线| 国产成人av一区| 国内精品一区二区| 黄色片视频在线观看| 亚洲国产高清aⅴ视频| 国产91av视频在线观看| 欧美xxxbbb| 欧美日韩一区二区在线| 在线免费观看av的网站| 久久久久久亚洲精品美女| 日韩午夜激情视频| 国产综合精品久久久久成人av| 天天插综合网| 国内精品久久久久久影视8| 91丝袜一区二区三区| 美女一区二区视频| 成人激情春色网| 少妇av在线播放| 国产视频视频一区| 少妇一晚三次一区二区三区| 电影一区二区三| 91麻豆精品国产无毒不卡在线观看| 久久久精品人妻一区二区三区| 亚洲最好看的视频| 欧美精品电影在线| 中文永久免费观看| 成人免费高清在线观看| 亚洲国产精品一区二区第一页| 丝袜中文在线| 欧美性大战久久久久久久蜜臀 | 热久久最新地址| 二吊插入一穴一区二区| 欧美成人精精品一区二区频| 亚洲无人区码一码二码三码的含义| 欧美1区2区3区| 国产成人av网| 视频二区在线| 亚洲免费在线视频| 男人搞女人网站| 极品尤物一区| 精品国产一区二区三区久久久狼 | 亚洲狠狠爱一区二区三区| 国产区二区三区| 欧美福利在线播放网址导航| 日韩在线免费观看视频| 久久久夜色精品| 国产一区二区三区精品欧美日韩一区二区三区| 国产一区二区三区四区五区在线| 免费在线毛片网站| 欧美性生活久久| 一区二区三区少妇| 黑人一区二区| 91传媒视频在线观看| 1024视频在线| 91福利精品视频| 久久亚洲AV成人无码国产野外| 欧美韩日精品| 国产专区欧美专区| 韩国三级在线观看久| 亚洲激情一二三区| 亚洲三级在线观看视频| 日本电影一区二区| 国产精品99久久久久久人| 婷婷五月综合久久中文字幕| 亚洲大片免费看| 成人做爰69片免费| 欧美黄色一区| 51精品国产人成在线观看| 免费在线看黄网站| 7777精品伊人久久久大香线蕉超级流畅 | 中文字幕无码人妻少妇免费| 欧美日韩亚洲一区二区三区在线| 91亚洲国产精品| 思思99re6国产在线播放| 欧美日韩国产一级二级| 99热99这里只有精品| 日本中文字幕一区二区视频 | 亚洲av无码一区二区三区性色| 亚洲特黄一级片| 91丝袜超薄交口足| 亚洲最新色图| 超碰97在线人人| 欧美aaaaaaa| 欧美精品一区二区久久婷婷 | 久久国产成人精品| 国产日韩欧美在线| 成人三级网址| 精品日韩一区二区三区免费视频| 国产亚洲精品av| 不卡的电视剧免费网站有什么| 国产制服91一区二区三区制服| 日本免费精品| 91大神福利视频在线| 青青视频在线观| 在线观看区一区二| 国产精品视频一区二区在线观看| 国产成人一区二区精品非洲| 免费看黄在线看| 欧美少妇性xxxx| 亚洲精品日韩激情在线电影| 免费污视频在线| 日韩高清av在线| 日韩不卡高清视频| 亚洲日本在线天堂| 在线观看国产免费视频| 日本大胆欧美人术艺术动态| 蜜臀在线免费观看| 欧美韩一区二区| 国产日产亚洲精品| bl在线肉h视频大尺度| 亚洲色在线视频| 国产女18毛片多18精品| 欧美日韩国产黄| 欧美日韩国产一二三区| 蜜桃视频一区二区三区在线观看 | 大地资源二中文在线影视观看| 日韩电影在线观看一区| 在线丝袜欧美日韩制服| 女同久久另类99精品国产| 国产精品久久久久秋霞鲁丝 | 日韩免费一级视频| 久久影院100000精品| 国产三区精品| 久久av影院| 性欧美激情精品| 国产尤物视频在线| 精品国产乱码久久久久久久久| 无码人妻一区二区三区线| 亚洲免费观看视频| 久久国产柳州莫菁门| 夫妻av一区二区| 亚洲成人天堂网| 亚洲欧洲日本mm| 樱空桃在线播放| 欧美日韩播放| 国产精品一 二 三| 天天综合在线观看| 91国产中文字幕| 成a人片在线观看| 在线播放国产一区二区三区| 蜜桃91麻豆精品一二三区| 欧美在线观看视频在线| 国产大片aaa| 亚洲男人天堂av网| 潮喷失禁大喷水aⅴ无码| 99久久99久久综合| 无码人妻久久一区二区三区蜜桃| 免播放器亚洲一区| 久草在在线视频| 久久国产88| 亚洲中文字幕无码av永久| 自拍偷拍欧美专区| 一区二区三区四区| 91综合在线| 亚洲精品9999| 欧美亚洲国产激情| 免费国产在线精品一区二区三区| 97一区二区国产好的精华液| 国产啪精品视频| 成人黄色免费短视频| 国产高清视频一区三区| 日本黄色免费在线| 91国产精品电影| 爱草tv视频在线观看992| 欧美大学生性色视频| а√天堂8资源在线官网| 国产一区二区三区18| 高清日韩av电影| 亚洲视频在线视频| 国产一级在线| 国产亚洲欧洲在线| 999在线视频| 亚洲激情视频在线观看| 激情福利在线| 一区二区三区四区精品| h网站视频在线观看| 伊人伊人伊人久久| h视频在线观看免费| 亚洲品质视频自拍网| www.91在线| 久久影视电视剧免费网站| 成人国产免费电影| 欧美国产日韩一区二区| 超碰在线资源| 26uuu日韩精品一区二区| а√天堂中文在线资源8| 97精品在线观看| 惠美惠精品网| 国产精品入口尤物| 国产精品视频首页| 国产精品二区在线观看| 色婷婷av一区二区三区丝袜美腿| 欧美日韩精品免费看| 成人一区而且| 黄色网在线视频| 亚洲精品女人| 亚洲男人天堂色| 国产又黄又大久久| 日本少妇xxxx| 久久精品男人天堂av| 成人18视频免费69| 亚洲午夜一二三区视频| 国产一级淫片a视频免费观看| 欧美猛男gaygay网站| 亚洲成人一级片| 亚洲精品网站在线播放gif| 成人免费在线电影| 蜜臀久久99精品久久久无需会员| 麻豆福利在线观看| 欧美一二三视频| 麻豆精品久久| 久久久久久久久久久久久久久久av| 精品在线播放| 欧美日韩中文字幕在线播放| 蘑菇福利视频一区播放| 中文字幕永久有效| 91亚洲资源网| 婷婷久久综合网| 欧美三级xxx| 国产情侣一区二区| 亚洲视屏在线播放| 日本资源在线| 国产精品一区二区久久精品| 99久久免费精品国产72精品九九| 欧美在线激情| 91精品国产乱码久久久久久久| 久久久精品在线视频| 国产福利91精品一区二区三区| xxxx日本黄色| 性欧美疯狂xxxxbbbb| 一区二区的视频| 亚洲国产日韩欧美在线99| 蜜桃视频网站在线| 人九九综合九九宗合| 91成人入口| 亚洲最大免费| 久久久久国内| 免费看毛片的网站| 亚洲欧美视频在线观看视频| 手机在线看片1024| 精品久久国产老人久久综合| 黄色av免费在线观看| 久久久免费在线观看| 国产精品一区二区美女视频免费看| 欧美日韩在线不卡一区| 一区二区视频欧美| 国产在线a视频| 国产精品欧美极品| wwwwww在线观看| 亚洲精品一区二区三区婷婷月| 日本小视频在线免费观看| 国产在线观看91精品一区| 青青一区二区| 一区二区传媒有限公司| 成人永久免费视频| 欧美国产在线看| 欧美夫妻性生活| 国产精品一二三区视频| 日韩av免费在线播放| 欧美调教网站| 日本欧美黄色片| 成人av在线资源| 免看一级a毛片一片成人不卡| 日韩欧美色电影| 在线免费观看污| 亚洲综合国产精品| 欧美人成网站| 天天躁日日躁狠狠躁av麻豆男男| 一区二区成人在线| 成人激情四射网| 欧美激情一区二区三区成人 | 免费黄色网页在线观看| 国产精品久在线观看| 精品久久视频| jizz欧美激情18| 国产精品美女久久久久aⅴ国产馆| aaaaaa毛片| 不用播放器成人网| 亚洲精品一二三**| 老太脱裤子让老头玩xxxxx| caoporn国产精品| 国产一区二区视频网站| 在线国产精品视频| 久久免费影院| 日本免费黄色小视频| 精品中文av资源站在线观看| 久久久久99精品成人片试看| 欧美r级电影在线观看| 岛国av在线播放| 欧美日韩大片一区二区三区| 久久欧美肥婆一二区| 亚洲天堂av中文字幕| 欧美一区二区三区在线视频| 欧美xxxx做受欧美88bbw| 国产一区在线免费观看| 美女视频黄 久久| 欧美激情一区二区视频| 亚洲国产精品热久久| 久久野战av| 国产91沈先生在线播放| 91丨九色丨尤物| 一级特黄特色的免费大片视频| 欧美精品免费看| 爱高潮www亚洲精品| 男人舔女人下面高潮视频| 中文字幕一区视频| 日韩一级片免费| 欧美在线性爱视频| 91精品啪在线观看国产81旧版| 玖玖爱在线精品视频| 欧美日韩亚洲国产综合| 国产黄大片在线观看|