在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:jsoncat开源软件地址:https://gitee.com/SnailClimb/jsoncat开源软件介绍:
原创开源不易,觉得不错的话,欢迎给良心作者 1 个 star 鼓励一下! 介绍jsoncat 是我(Guide 哥,Gai 的哥)模仿 Spring Boot 写的一个轻量级的 HTTP 框架。 jsoncat 内置由 Netty 编写 HTTP 服务器,无需额外依赖 Tomcat 之类的 web 服务器。使用 Netty 几十行代码即可实现一个简易的 HTTP 服务,性能高且轻量。 为什么要写? 写这个东西只是自己个人的兴趣爱好使然,也不是说非要拿到项目上实际去使用,主要目的还是为了提高自己的编码能力。推荐小伙伴们也要尽量能够将自己的想法付诸于行动。 理论知识固然重要,但是脱离于实践的理论并不可靠。相比于 CRUD ,自己造个轮子,肯定是更有意思,也更能锻炼自己的编程能力和解决问题的能力。 特点
框架基本情况和待办功能实现上,没有太去模仿参考 Spring 的源码,那样的话没太大必要,完全就是按照自己的想法写的,会借鉴一些 Spring 源码的思想。 功能其实写的挺快的,大部分时间都在重构。讲真, 我已经很尽力地保证代码的可读性了。尽量使用最少的代码实现功能, 并且不影响可读性。 目前,我还不是特别满意,欢迎小伙伴们一起来完善啊!人多力量大! 功能实现Get 请求和 POST 请求处理
IOC
AOP
拦截器
异常处理
配置文件读取
其他
代码质量
功能演示
@Data@AllArgsConstructorpublic class User { private String name; private String des; private Integer age;}
@Componentpublic class UserService { private Integer id = 1; private final Map<Integer, User> users = new HashMap<Integer, User>() { { put(1, new User("盖伦", "德玛西亚", 22)); } }; public User get(Integer id) { return users.get(id); } public List<User> create(@RequestBody UserDto userDto) { users.put(++id, new User(userDto.getName(), userDto.getDes(), userDto.getAge())); return new ArrayList<>(users.values()); } public void say() { System.out.println("UserService say 你真帅!"); }}
@Data@AllArgsConstructor@NoArgsConstructorpublic class UserDto { private String name; private String des; private Integer age;}
@RestController("/user")public class UserController { @Autowired private UserService userService; @GetMapping public User get(@RequestParam("name") String name, @RequestParam("des") String des, @RequestParam("age") Integer age) { return new User(name, des, age); } @GetMapping("/{id}") public User get(@PathVariable("id") Integer id) { return userService.get(id); } @PostMapping public List<User> create(@RequestBody UserDto userDto) { return userService.create(userDto); }} Get 请求: |
2022-08-15
2022-08-17
2022-09-23
2023-10-27
2022-08-18
请发表评论