成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊一下簡易版的“Spring Boot”寫的咋樣了

開發 項目管理
昨天早上,6 點多一點就起來寫代碼了,前天晚上和朋友一起吃晚飯回來之后也搞到很晚,有時候想盡快把某些東西寫完的時候確實是會這樣。

[[344500]]

本文轉載自微信公眾號「JavaGuide」,作者Guide哥 。轉載本文請聯系JavaGuide公眾號。 

昨天早上,6 點多一點就起來寫代碼了,前天晚上和朋友一起吃晚飯回來之后也搞到很晚,有時候想盡快把某些東西寫完的時候確實是會這樣。

但是,說實話效率會降低很多,不推薦這樣做。像我之前寫guide-rpc-framework[1] 的時候,經常周末不出門,一坐就是一天。到了晚上整個人一臉油,眼睛還很酸,效率低了太多。

目前的話,已經把 Spring MVC 相關常用的注解比如@GetMapping 、@PostMapping 、@PathVariable 寫完了。

整個項目的目錄結構如下,還算比較清晰。我也已經將項目開源出來了,地址:https://github.com/Snailclimb/jsoncat 。原創開源不易,覺得不錯的話,歡迎給良心作者 1 個 star 鼓勵一下!

 

介紹

jsoncat 是我(Guide 哥,Gai 的哥)模仿 Spring Boot 寫的一個輕量級的 HTTP 框架。

jsoncat 內置由 Netty 編寫 HTTP 服務器,無需額外依賴 Tomcat 之類的 web 服務器。使用 Netty 幾十行代碼即可實現一個簡易的 HTTP 服務,性能高且輕量。

為什么要寫?

寫這個東西只是自己個人的興趣愛好使然,也不是說非要拿到項目上實際去使用,主要目的還是為了提高自己的編碼能力。推薦小伙伴們也要盡量能夠將自己的想法付諸于行動。

理論知識固然重要,但是脫離于實踐的理論并不可靠。相比于 CRUD ,自己造個輪子,肯定是更有意思,也更能鍛煉自己的編程能力和解決問題的能力。

特點

1.內置由 Netty 編寫 HTTP 服務器,無需額外依賴 Tomcat 之類的 web 服務

2.代碼簡潔,可讀性好

3.支持 Spring MVC 常用的注解,用法也和 Spring MVC 一樣

4.后端只返回 json 數據給前端

5.集成了 checkstyle 、spotbugs、pmd 并設置了 commit 鉤子來保證代碼質量

框架基本情況和代辦

功能實現上,沒有太去模仿參考 Spring 的源碼,那樣的話沒太大必要,完全就是按照自己的想法寫的,會借鑒一些 Spring 源碼的思想。

功能其實寫的挺快的,大部分時間都在重構。講真, 我已經很盡力地保證代碼的可讀性了。盡量使用最少的代碼實現功能, 并且不影響可讀性。

目前,我還不是特別滿意,歡迎小伙伴們一起來完善啊!人多力量大!

 

功能演示

User.java :用戶實體類

  1. @Data 
  2. @AllArgsConstructor 
  3. public class User { 
  4.     private String name
  5.     private String des; 
  6.     private Integer age; 

UserDto.java : 創建用戶的傳輸對象

  1. @Data 
  2. @AllArgsConstructor 
  3. @NoArgsConstructor 
  4. public class UserDto { 
  5.     private String name
  6.     private String des; 
  7.     private Integer age; 

UserController.java:用戶層 controller

  1. @RestController("/user"
  2. public class UserController { 
  3.     private static HashMap<IntegerUser> users; 
  4.     private static Integer id; 
  5.  
  6.     static { 
  7.         users = new HashMap<>(); 
  8.         users.put(1, new User("蓋倫""德瑪西亞", 22)); 
  9.         id = 2; 
  10.     } 
  11.  
  12.     @GetMapping 
  13.     public User get(@RequestParam("name") String name, @RequestParam("des") String des, @RequestParam("age"Integer age) { 
  14.         return new User(name, des, age); 
  15.     } 
  16.  
  17.     @GetMapping("/{id}"
  18.     public User get(@PathVariable("id"Integer id) { 
  19.         return users.get(id); 
  20.     } 
  21.  
  22.     @PostMapping 
  23.     public List<Usercreate(@RequestBody UserDto userDto) { 
  24.         users.put(id++, new User(userDto.getName(), userDto.getDes(), userDto.getAge())); 
  25.         return new ArrayList<>(users.values()); 
  26.     } 

Get 請求:@PathVariable傳參

 

Get 請求:@RequestParam傳參

 

Post 請求

 

請求錯誤的處理情況

當傳入的參數類型不正確時:

 

當指定的參數未傳遞時:

 

References

[1] guide-rpc-framework: https://github.com/Snailclimb/guide-rpc-framework

 

 

 

責任編輯:武曉燕 來源: JavaGuide
相關推薦

2022-10-20 11:49:49

JS動畫幀,CSS

2023-12-29 08:31:49

Spring框架模塊

2021-04-21 14:19:52

javaignalHandle接口

2025-01-10 11:07:28

2017-01-13 08:37:57

PythonAlphaGoMuGo

2021-11-24 10:10:32

axios前端攔截器

2021-04-27 07:52:18

SQLNULLOR

2021-07-12 15:50:55

Go 語言netstat命令

2021-03-26 00:20:34

NFT區塊鏈數據庫

2022-02-11 13:44:56

fiber架構React

2021-06-30 00:19:43

AOP動態代理

2022-02-08 08:31:52

const關鍵字C語言

2021-04-21 21:06:11

數據結構

2021-06-06 12:59:14

實現方式計數

2023-12-28 09:59:37

Spring容器XML

2021-03-10 00:02:01

Redis

2021-05-31 06:28:35

AutoMapper對象映射器

2021-05-06 15:05:57

Python自動化工具

2024-09-09 08:29:25

2009-12-08 12:24:36

LinuxNTFS分區寫操作
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 北条麻妃av一区二区三区 | 日韩欧美综合在线视频 | 精品一区二区三区四区视频 | 精品视频一区二区 | 婷婷精品 | 国产在线中文字幕 | 精品亚洲91 | 免费三级网| 9999久久| 久久久国产精品入口麻豆 | 国产黄色一级电影 | 亚洲国产欧美国产综合一区 | 日韩欧美在线一区二区 | 先锋资源在线 | 亚洲天堂一区 | 久久久久成人精品 | 一区二区三区在线看 | 国产欧美精品 | 中文字幕一区二区三区不卡 | 中文字幕乱码视频32 | 国产成人精品一区二区三 | 欧美成人精品欧美一级 | 亚洲一区二区三区在线免费观看 | 97超碰人人草 | 自拍偷拍一区二区三区 | 一级a爱片性色毛片免费 | 日本一本视频 | 欧美视频 亚洲视频 | 国产精品久久久久久久久图文区 | 亚洲天堂成人在线视频 | av在线一区二区三区 | 日韩专区中文字幕 | 国产精品久久久爽爽爽麻豆色哟哟 | 国产精品一区在线 | 亚洲精品在线观 | 国产一区久久 | 亚洲精品国产成人 | 日韩久久成人 | 精品福利在线 | 国产一区视频在线 | 视频一区二区三区四区五区 |