项目概述
本专栏是作者小傅哥使用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与Maven搭建UI桌面工程,逐步讲解登录框体、聊天框体、对话框、好友栏等各项UI展示及操作事件。从而在这一章节中让Java程序员学会开发桌面版应用。
在这一章节中我们会使用DDD领域驱动设计的四层模型结构与Netty结合使用,架构出合理的分层框架。同时还有相应库表功能的设计。相信这些内容学习后,你一定也可以架设出更好的框架。
这部分我们主要将通信中的各项功能逐步实现,包括;登录、添加好友、对话通知、消息发送、断线重连等各项功能。最终完成整个项目的开发,同时也可以让你从实践中学会技能。
学习收获
技术技能提升
- 掌握JavaFx桌面应用开发,学会构建现代化的用户界面
- 深入理解Netty网络编程,掌握高性能异步通信技术
- 学会DDD领域驱动设计,构建清晰的业务架构
- 掌握SpringBoot快速开发,构建RESTful API服务
- 学会MySQL数据库设计,掌握复杂业务数据建模
项目实战经验
- 完整的即时通讯系统开发经验,从前端到后端的全栈开发
- 网络通信协议设计和实现,消息序列化和反序列化
- 用户认证和权限管理,好友关系管理系统
- 实时消息推送和通知机制,断线重连和异常处理
- 性能优化和并发处理,系统稳定性保障
架构设计能力
- 学会分层架构设计,理解各层职责和边界
- 掌握模块化开发思想,提高代码复用性和可维护性
- 学会系统扩展性设计,为后续功能扩展做好准备
- 掌握异常处理和日志记录,提高系统健壮性
优秀作业展示
学员优秀作品
- Java仿微信对接小傅哥ChatGPT-SDK-Java实现智能机器人 @俗人
- 借助 JDK1.8 中的 javapackager.exe 和 IDEA 生成 IM 可运行文件 @俗人
- JavaFX打包exe @俗人
- 基于Netty实现的分布式聊天系统 @小明
- 添加群聊功能的微信聊天系统 @小红
- 集成语音通话功能的即时通讯工具 @小李