Перевод текста на русский язык:
Данный проект синхронизирован с облачным хранилищем кода, адрес: https://gitee.com/SnailClimb/jsoncat.
Соответствующее руководство обновляется в моём публичном аккаунте «JavaGuide», для получения всех руководств можно ответить «jsoncat» в личном кабинете.
Учитывая, что большинство пользователей — китайцы, в ближайшее время я планирую перевести все комментарии на китайский язык и добавить некоторые комментарии, чтобы помочь всем понять код.
Создание оригинального открытого исходного кода — непростая задача. Если вам нравится моя работа, пожалуйста, поддержите автора, поставив 1 звезду!
jsoncat — это лёгкий HTTP-фреймворк, созданный мной (Guide 哥, Gai) по образцу Spring Boot.
В jsoncat встроен HTTP-сервер на основе Netty, нет необходимости в дополнительных зависимостях от Tomcat или других веб-серверов. С помощью Netty можно реализовать простой HTTP-сервис всего за несколько десятков строк кода, он обладает высокой производительностью и малым весом.
Зачем это нужно?
Я создал этот проект просто ради интереса и удовольствия, а не для того, чтобы использовать его в реальных проектах. Моя основная цель — улучшить свои навыки кодирования. Я также рекомендую своим друзьям стараться воплощать свои идеи в жизнь.
Теоретические знания важны, но теория без практики ненадёжна. По сравнению с CRUD, создание собственного проекта интереснее и лучше развивает навыки программирования и решения проблем.
С точки зрения функциональности, я не слишком старался имитировать исходный код Spring, это было бы не так уж необходимо. Я просто следовал своим идеям и заимствовал некоторые концепции из исходного кода Spring.
На самом деле, разработка прошла довольно быстро, большая часть времени была потрачена на рефакторинг. Честно говоря, я уже приложил все усилия, чтобы сделать код читаемым. Я стараюсь использовать минимум кода для реализации функций и не ухудшать читаемость.
В настоящее время я всё ещё не полностью удовлетворён результатом, и я приглашаю всех присоединиться к улучшению! Вместе мы сильнее!
@GetMapping
: обработка запросов GET.@PostMapping
: обработка запросов POST.@RequestBody
: получение строки JSON, отправленной клиентом.@RequestParam
: получение параметров запроса URL.@PathVariable
: получение параметров/заполнителей из URL.@Autowired
: внедрение объектов.@Component
: объявление объекта управляемым контейнером IOC.@Qualifier
: указание внедряемого bean.@Aspect
.@Pointcut
.@Before
.@After
.@Order
.@ControllerAdvice
.@ExceptionHandler
.@SpringBootApplication
.@Configuration
.User.java
— класс сущности пользователя
@Data
@AllArgsConstructor
public class User {
private String name;
private String des;
private Integer age;
}
UserDto.java
— класс бизнес-логики пользователя
@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 你真帅!");
}
}
UserDto.java
— объект передачи данных для создания пользователя
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserDto {
private String name;
private String des;
private Integer age;
}
UserController.java
— взаимодействие пользователя с интерфейсом
@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);
}
}
@PathVariable
Запрос GET: передача параметров @RequestParam
Когда тип передаваемого параметра неверен:

Если указанный параметр не передан:

Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )