精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产精品久久久久一区二区三区共| 国产精品二区不卡| 一本久久a久久精品亚洲| 欧美日本韩国国产| 在线观看免费黄色小视频| 亚洲成人精品| 日韩久久精品电影| 午夜两性免费视频| 1区2区3区在线| 国产欧美日韩三级| av一区和二区| 五月婷婷六月婷婷| 亚洲无吗在线| 中文精品99久久国产香蕉| 蜜桃色一区二区三区| 成人午夜精品| 亚洲韩国精品一区| 亚洲不卡一卡2卡三卡4卡5卡精品| 中文字字幕在线观看| 在线精品一区二区| 深夜福利日韩在线看| www.88av| silk一区二区三区精品视频| 欧日韩精品视频| 亚洲 自拍 另类小说综合图区| 午夜伦理在线| 久久网这里都是精品| 999国产视频| 亚洲综合精品视频| 爽好多水快深点欧美视频| 欧美激情中文网| 免费精品在线视频| 精品不卡一区| 日韩精品中文字幕在线观看| 亚洲免费观看在线| 亚洲日韩中文字幕一区| 在线一区二区视频| 无码精品a∨在线观看中文| 亚洲精品一线| 中文字幕一区二区三| 少妇精品久久久久久久久久| 亚洲av片在线观看| 福利一区福利二区| 99视频免费观看| a级片在线视频| 久久精品国产99| 国产精品视频专区| 性色av一区二区三区四区| 亚洲综合国产| 2019av中文字幕| 日韩高清精品免费观看| 国产精品草草| 久久久久这里只有精品| 久久久久黄色片| 欧美午夜久久| 欧美大片大片在线播放| 久久久久久久国产精品毛片| 91av精品| 色在人av网站天堂精品| 欧美黑吊大战白妞| 欧美先锋影音| 久久久久久中文字幕| 国产一级特黄毛片| 黄色成人在线网址| 97av在线视频| 久久久黄色大片| 日本中文字幕一区二区有限公司| 国产精品对白刺激| 亚洲香蕉在线视频| 国产乱码精品一区二区三| 99久久无色码| 日中文字幕在线| 国产亚洲午夜高清国产拍精品| 欧美日韩三区四区| avtt在线播放| 亚洲欧美日韩中文字幕一区二区三区| eeuss中文| 91丝袜在线| 日韩欧美福利视频| 日本激情综合网| 国模大尺度视频一区二区| 精品美女一区二区三区| aaaaa级少妇高潮大片免费看| 国产日产精品_国产精品毛片| 亚洲性av网站| 久草网站在线观看| 国产日韩一区二区三区在线| 国产精品成av人在线视午夜片| 91久久国语露脸精品国产高跟| 国产福利一区二区三区视频在线| 精品免费二区三区三区高中清不卡| 视频二区在线观看| 中文字幕免费不卡在线| 国产 欧美 日本| 都市激情综合| 日韩一级完整毛片| 国产激情在线免费观看| 久久社区一区| 亚州精品天堂中文字幕| 亚洲图片视频小说| 91视视频在线观看入口直接观看www| 视频一区免费观看| 福利小视频在线| 欧美无乱码久久久免费午夜一区| 亚洲一区二区三区三州| 久操国产精品| 欧美精品久久久久久久| 中文字幕日本视频| 成人在线视频一区二区| 一级做a爰片久久| 麻豆免费版在线观看| 欧美日韩成人在线| 久久人人爽人人爽人人片| 久久久久久久久久久9不雅视频| 97久久精品在线| 国产精品久久久午夜夜伦鲁鲁| 91视频免费播放| 国产树林野战在线播放| 日韩成人高清| 日韩风俗一区 二区| 草视频在线观看| 久久99国产精品麻豆| 欧洲亚洲一区| 在线天堂中文资源最新版| 日韩一区二区三区免费观看| 国产在线综合视频| 香蕉久久久久久久av网站| 成人欧美视频在线| 免费在线观看黄| 欧美综合视频在线观看| 日本xxx在线播放| 亚洲黄色成人| 成人av片网址| bestiality新另类大全| 欧美男生操女生| 能直接看的av| 久久只有精品| 久久资源av| 交100部在线观看| 亚洲国产成人精品久久| 欧美激情精品久久| 国产精品一二三区在线| 国产免费一区二区三区四在线播放| 日本国产欧美| 伊人成人开心激情综合网| 欧美激情黑白配| 久久这里只有精品6| 天堂…中文在线最新版在线| 丁香五月缴情综合网| 欧美激情免费观看| 丰满人妻一区二区| 亚洲成人av福利| 五月天激情小说| 亚洲美女啪啪| 日本一区二区高清视频| av有声小说一区二区三区| 亚洲无线码在线一区观看| 精品人妻一区二区三区潮喷在线| 91亚洲大成网污www| 99久久激情视频| 精品国产一区二区三区| 国产日韩欧美夫妻视频在线观看 | 99热国产在线| 91精品综合久久久久久| 欧美日韩精品一区二区三区视频播放 | 国产精品久久久久久户外露出 | 99视频热这里只有精品免费| 国产无限制自拍| 亚洲福利网站| 国产精品一区久久久| 成人影院www在线观看| 日韩视频一区二区三区在线播放| 久久亚洲AV无码| 99久久精品国产一区二区三区| 人妻熟女一二三区夜夜爱| 欧美日韩在线观看视频小说| 国产精品专区一| 亚洲色图美国十次| 亚洲欧美精品一区二区| 亚洲天堂avav| 亚洲国产视频一区二区| 99久久人妻无码精品系列| 久久超碰97人人做人人爱| 日韩国产小视频| 久操成人av| 91久久极品少妇xxxxⅹ软件| 午夜影视一区二区三区| 日韩视频在线免费观看| 黄色一级大片在线免费看国产一| 色综合久久综合中文综合网| 内射一区二区三区| av亚洲产国偷v产偷v自拍| 中文字幕第21页| 欧美天天视频| 亚洲午夜精品久久| 国产乱人伦丫前精品视频| 日本一区二区在线播放| 成人黄色网址| 亚洲人成在线观看| 精品国产乱码久久久久久蜜臀网站| 欧美日韩亚洲高清| 黄色a级片在线观看| 久久久久久综合| 欧美日韩一区二区区| 老妇喷水一区二区三区| 久久亚洲a v| 9999国产精品| 蜜桃视频在线观看成人| 日韩视频一二区| 国产精品视频一区国模私拍| 精品丝袜在线| 色综合男人天堂| 老司机在线永久免费观看| 欧美tickling网站挠脚心| 亚洲一区在线观| 91成人在线观看喷潮| 日韩欧美三级视频| 亚洲免费av观看| 亚洲AV成人无码网站天堂久久| 2024国产精品| 日本天堂在线播放| 久草中文综合在线| 日本新janpanese乱熟| 一本色道久久综合一区 | 国产视频在线播放| 在线观看欧美成人| 欧美日韩影视| 日韩精品中文字幕在线| 污污视频在线观看网站| 91精品国产综合久久久蜜臀图片| 最近免费中文字幕大全免费版视频| 亚洲成av人综合在线观看| 朝桐光av在线| 亚洲人成小说网站色在线| 亚洲一级理论片| 国产精品免费丝袜| 国产破处视频在线观看| 欧美激情综合在线| 国产精成人品免费观看| 国产亚洲视频系列| 欧美熟妇激情一区二区三区| 2020日本不卡一区二区视频| 精品无码人妻一区| 久久免费视频一区| 亚洲国产天堂av| 国产日韩v精品一区二区| 国产成人精品无码免费看夜聊软件| 91在线看国产| 精品少妇人妻一区二区黑料社区| 久久女同互慰一区二区三区| 免费观看一级一片| 91色九色蝌蚪| 亚洲区自拍偷拍| 国产拍欧美日韩视频二区| 人妻视频一区二区| 国产精品麻豆网站| 99久久久免费精品| 一区二区三区加勒比av| 精品无码黑人又粗又大又长| 性感美女极品91精品| 国内精品福利视频| 91黄色在线观看| 一级α片免费看刺激高潮视频| 欧美日韩国产高清一区二区| 国产一区二区三区四区视频| 欧美一区二区在线看| 丰满肥臀噗嗤啊x99av| 亚洲经典中文字幕| 国产在线网站| 久久视频在线视频| 1区2区3区在线| 国产精品成人免费电影| 在线高清欧美| 国模精品娜娜一二三区| 精品国产一区二区三区四区| 最新欧美日韩亚洲| 黄色av日韩| 乌克兰美女av| 国产成a人亚洲| 免费观看av网站| 成人免费在线视频观看| 国产无套内射又大又猛又粗又爽 | 午夜免费久久久久| 国精产品一区二区三区有限公司 | 日韩精品丝袜美腿| 亚洲乱码一区二区三区三上悠亚| 欧美激情精品久久久六区热门| 可以在线看的av网站| 日韩 欧美一区二区三区| 色诱av手机版| 日本一区二区三区dvd视频在线 | 黄色成人在线网址| 少妇激情一区二区三区| 国产激情偷乱视频一区二区三区| 国产乱了高清露脸对白| 亚洲欧洲精品一区二区精品久久久 | 国产成人免费av| 亚洲日本va| 亚洲精品欧美精品| 夜夜夜久久久| 极品白嫩少妇无套内谢| 国产欧美视频一区二区| 国产一级性生活| 欧美一区二区三区婷婷月色| 精品视频三区| 高清欧美性猛交xxxx| 四虎永久精品在线| 精品乱码一区二区三区| 午夜精品偷拍| 日本不卡一区在线| 久久久久久久性| 日韩三级av在线| 日韩亚洲国产中文字幕欧美| 高清毛片在线看| 欧美亚洲在线视频| 一区三区自拍| 成年人黄色在线观看| 日韩有码一区二区三区| 国产麻豆xxxvideo实拍| 一区二区三区四区在线| 一本久道久久综合无码中文| 亚洲天堂精品在线| 在线天堂中文资源最新版| 国产伦精品一区二区三区视频免费 | 亚洲天堂中文字幕| 中国一级特黄视频| 亚洲人成电影网站色| 欧美gv在线| 精品国产乱码久久久久| 黄色国产精品| 精品国产免费久久久久久婷婷| 成人免费在线视频| 97人妻精品一区二区三区软件| 在线播放亚洲激情| 免费观看成人性生生活片| 欧洲精品亚洲精品| 日日骚欧美日韩| 天天干天天舔天天操| 色偷偷88欧美精品久久久| 日本中文字幕一区二区有码在线 | 一本一道精品欧美中文字幕| 中文字幕成人在线| 欧美日韩女优| 亚洲bbw性色大片| 久久99精品久久久久婷婷| 影音先锋男人看片资源| 欧美日韩亚洲综合在线| 国产高清在线| 国产精品一区二区性色av| 日韩精品电影| www.午夜av| 亚洲精品视频一区二区| 性欧美videos另类hd| 午夜精品免费视频| 日韩啪啪网站| www黄色在线| 国产精品超碰97尤物18| 国产精品区在线观看| 欧美大片在线看免费观看| 91国内精品| 国产aaa一级片| 国产视频亚洲色图| 国产伦一区二区| 九色91av视频| 宅男在线一区| 天天干天天爽天天射| 亚洲精品国久久99热| 亚洲av无码一区二区三区性色| 久久久久久中文| 国产欧美日韩精品一区二区三区| 伊人网在线综合| 亚洲一区在线电影| 欧美套图亚洲一区| 国产欧美日韩最新| 亚洲私人影院| 蜜桃传媒一区二区亚洲| 欧美精品 日韩| 国产在线观看www| 亚洲日本欧美在线| 成人性色生活片| 这里只有久久精品视频| 欧美剧在线观看| 国产亚洲一卡2卡3卡4卡新区 | 18久久久久久| 国产精品久久久久久影院8一贰佰| 中国男女全黄大片| 色一情一乱一乱一91av| 成人a在线视频免费观看| 精品一卡二卡三卡四卡日本乱码 | 91精品在线一区| 国产精品一二| 国产高清在线免费观看| 亚洲欧美日韩一区在线| 久久三级中文| 不卡av免费在线| 亚洲第一精品在线| 里番在线观看网站| 免费观看成人高| 福利一区二区在线观看| 中文字幕在线播放av|