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