成人免费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-03-26 00:20:34

NFT區塊鏈數據庫

2021-07-12 15:50:55

Go 語言netstat命令

2021-06-30 00:19:43

AOP動態代理

2022-02-08 08:31:52

const關鍵字C語言

2021-04-21 21:06:11

數據結構

2022-02-11 13:44:56

fiber架構React

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技術棧公眾號

主站蜘蛛池模板: 久久99网 | 免费一级黄色录像 | 亚洲欧美日韩国产综合 | 亚洲国产一区二区三区在线观看 | 亚洲精品久久久久久一区二区 | 国产www在线 | 亚洲一区二区视频 | 国产精品欧美一区二区三区不卡 | 国产黄色免费网站 | 欧洲一区二区在线 | 老外黄色一级片 | 日韩成人精品一区 | 一区亚洲 | 日韩中文字幕一区二区 | 国产精品二区三区 | 婷婷精品 | 午夜av成人 | 亚洲激情一区二区三区 | 日本午夜精品 | 91免费电影| 中文字幕在线一区二区三区 | 久久免费福利 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 日韩小视频 | 成人国产在线观看 | 日本一区二区高清不卡 | 欧美一区二区三区在线 | 日韩高清三区 | 亚洲国产成人在线视频 | 国产高清av免费观看 | 久久国产日韩欧美 | 欧美成人第一页 | 91一区| 国产在线精品一区二区三区 | av二区三区| 久久国产精99精产国高潮 | 日韩成人高清 | 国产精品大片在线观看 | 成人在线国产 | 久久久国产一区 | 久久69精品久久久久久久电影好 |