Netty+JavaFx: практическая реализация настольной версии мессенджера
В этой статье автор, используя технологии JavaFx, Netty 4.x, SpringBoot и MySQL, а также подход к проектированию, ориентированный на предметную область (DDD), описывает создание настольного приложения для имитации чата в стиле мессенджера WeChat. Если проект окажется полезным, автор просит поддержать его (подписаться, поставить лайк, поделиться).
Автор: Маленький Фу, Java Developer, эксперт CSDN, автор блога «Bugstack».
Как поддержать:
После дождя небо проясняется, На горе Ушань облака как краски. Сердце словно вдаль улетает, Одет по последней моде, как раз кстати.
Закончился долгий отпуск, и с первого дня я начал изучать технологию Netty, чтобы закрепить различные типы технологических стеков в реальных бизнес-процессах. И тогда я приступил к реализации проекта, имитирующего общение в WeChat, с использованием Netty!
Изучение любого нового технологического стека включает в себя следующие этапы: запуск HelloWorld, освоение API, практическую реализацию и, наконец, глубокое изучение исходного кода. В ответ на такой запрос программисты на Java, вероятно, подумают о некоторых технических аспектах, которые можно использовать для заполнения различных модулей нашего проекта, таких как пользовательский интерфейс (JavaFx, Swing и т. д.), связь (Socket или знание Netty framework), серверный контроль (MVC model + SpringBoot) и так далее. Однако объединение этих технологий в рациональную систему является наиболее важной частью процесса обучения, практики и роста.
Многие молодые специалисты при поиске работы сталкиваются с требованиями, включающими Netty. Это связано с тем, что Netty — это выдающийся фреймворк NIO, который широко используется. Независимо от того, в какой отрасли вы работаете — интернет, большие данные, связь или игры, — Netty всегда присутствует. Например, в RPC-фреймворке Alibaba Dubbo Netty используется в качестве основного коммуникационного компонента для внутренней связи между узлами. RocketMQ, промежуточное ПО для сообщений Taobao, также использует Netty в качестве высокопроизводительного асинхронного коммуникационного компонента. Помимо компаний Alibaba и Taobao, многие другие крупные предприятия также используют Netty для создания высокопроизводительных распределённых сетевых сервисов.
Поэтому нам необходимо изучить Netty. Чтобы помочь вам лучше и быстрее освоить эту технологию, мы выбрали хорошо знакомую и интересную тему «Настольный чат в стиле WeChat» в качестве нашей цели. Мы хотим, чтобы программисты на Java использовали свой привычный язык программирования вместе с JavaFx, Netty4.x, SpringBoot, MySQL и другими технологиями, а также подходом DDD к проектированию для создания настольного чата, реализующего основные функции общения. Таким образом, изучая Netty, мы также создаём разумную архитектуру и чистый код.
Адрес исходного кода:
Эта статья будет разделена на три больших раздела, описывающих процесс шаг за шагом:
Раздел 1: Разработка пользовательского интерфейса. Использование JavaFx и Maven для создания пользовательского интерфейса рабочего стола, пошаговое описание окна входа, окна чата, диалогового окна, панели друзей и других элементов пользовательского интерфейса и связанных с ними событий. Этот раздел научит программистов на Java создавать настольные приложения.
Раздел 2: Архитектура проекта. В этом разделе мы будем использовать четырёхслойную модель проектирования, основанную на DDD, и объединим её с Netty для разработки разумной многоуровневой структуры. Также будет описана соответствующая структура библиотеки таблиц. После изучения этого материала вы сможете создать более совершенную структуру.
Раздел 3: Реализация функций. Здесь мы подробно рассмотрим реализацию различных функций общения, включая вход в систему, добавление друзей, уведомления о диалогах, отправку сообщений и восстановление после потери соединения. Наконец, мы завершим разработку всего проекта и покажем, как практика помогает в изучении навыков.
Страница входа
Страница чата
Добавление друзей
Уведомления о сообщениях
Курс состоит из 25 статей, которые шаг за шагом объясняют разработку пользовательского интерфейса, проектирование архитектуры и реализацию функций, что делает его идеальным для начинающих.
Ссылка для изучения: chat.itstack.org.
Спасибо следующим участникам за их вклад в этот проект. Конечно, здесь перечислены не все участники, поэтому я не буду перечислять их всех. Если вы хотите быть добавлены в этот список и внесли свой вклад через Issue или PR, пожалуйста, свяжитесь со мной.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )