项目概述

本专栏是作者小傅哥使用JavaFx、Netty4.x、SpringBoot、Mysql等技术栈和偏向于DDD领域驱动设计方式,搭建的仿桌面版微信聊天工程实现通信核心功能。如果本项目能为您提供帮助,请给予支持(关注、点赞、分享)!

任何一个新技术栈的学习过程都会包括这样一条路线;运行HelloWorld、熟练使用API、项目实践以及最后的深度源码挖掘。那么在听到这样一个需求时候,Java程序员肯定会想到一些列的技术知识点来填充我们项目中的各个模块,例如;界面用JavaFx、Swing等,通信用Socket或者知道Netty框架、服务端控制用MVC模型加上SpringBoot等。

为什么学习Netty

可能很多的小伙伴在面试求职的过程中,都会看到招聘要求有些 Netty,这主要是因为 Netty 是一款非常优秀的NIO框架,并且应用非常广泛。无论在互联网、大数据以及通信和游戏行业中,都有Netty的身影。比如一线大厂阿里的RPC框架,Dubbo 协议默认使用 Netty 作为基础通信组件,用于各节点间的内部通信。淘宝的消息中间件 RocketMQ 的消息生产者与消费者,也是采用 Netty 作为高性能、异步通信组件。

项目演示

登录页面
简洁美观的登录界面,支持用户名密码登录验证
聊天页面
仿微信聊天界面,支持文字消息、表情、文件传输
添加好友
好友搜索添加功能,支持用户信息展示和好友申请
消息提醒
实时消息推送提醒,支持桌面通知和消息计数
工程架构
完整的项目架构图,展示各模块间的关系和数据流
知识体系
完整的技术知识体系图,涵盖所有核心技术点

核心技术栈

JavaFx
现代化桌面应用开发框架,构建美观的用户界面
Netty 4.x
高性能异步网络通信框架,实现客户端与服务端通信
SpringBoot
快速构建服务端应用,提供RESTful API接口
MySQL
关系型数据库,存储用户信息、好友关系、聊天记录
DDD设计
领域驱动设计,构建清晰的业务架构和代码结构
Maven
项目构建和依赖管理工具,统一管理项目结构

课程阶段

1
第一章节:UI开发

使用JavaFx与Maven搭建UI桌面工程,逐步讲解登录框体、聊天框体、对话框、好友栏等各项UI展示及操作事件。从而在这一章节中让Java程序员学会开发桌面版应用。

登录界面设计
聊天窗口布局
好友列表组件
事件处理机制
2
第二章节:架构设计

在这一章节中我们会使用DDD领域驱动设计的四层模型结构与Netty结合使用,架构出合理的分层框架。同时还有相应库表功能的设计。相信这些内容学习后,你一定也可以架设出更好的框架。

DDD四层架构
系统架构设计
数据库表设计
模块关系梳理
3
第三章节:功能实现

这部分我们主要将通信中的各项功能逐步实现,包括;登录、添加好友、对话通知、消息发送、断线重连等各项功能。最终完成整个项目的开发,同时也可以让你从实践中学会技能。

用户登录验证
好友添加功能
消息发送接收
断线重连机制

学习收获

技术技能提升

  • 掌握JavaFx桌面应用开发,学会构建现代化的用户界面
  • 深入理解Netty网络编程,掌握高性能异步通信技术
  • 学会DDD领域驱动设计,构建清晰的业务架构
  • 掌握SpringBoot快速开发,构建RESTful API服务
  • 学会MySQL数据库设计,掌握复杂业务数据建模

项目实战经验

  • 完整的即时通讯系统开发经验,从前端到后端的全栈开发
  • 网络通信协议设计和实现,消息序列化和反序列化
  • 用户认证和权限管理,好友关系管理系统
  • 实时消息推送和通知机制,断线重连和异常处理
  • 性能优化和并发处理,系统稳定性保障

架构设计能力

  • 学会分层架构设计,理解各层职责和边界
  • 掌握模块化开发思想,提高代码复用性和可维护性
  • 学会系统扩展性设计,为后续功能扩展做好准备
  • 掌握异常处理和日志记录,提高系统健壮性

优秀作业展示

学员优秀作品

  • Java仿微信对接小傅哥ChatGPT-SDK-Java实现智能机器人 @俗人
  • 借助 JDK1.8 中的 javapackager.exe 和 IDEA 生成 IM 可运行文件 @俗人
  • JavaFX打包exe @俗人
  • 基于Netty实现的分布式聊天系统 @小明
  • 添加群聊功能的微信聊天系统 @小红
  • 集成语音通话功能的即时通讯工具 @小李