EasyChat is a real-time chat application backend system built with Java Spring Boot. This project adopts a modern technology architecture, providing complete core features including user authentication, real-time messaging, file transfer, and more. It is designed for building high-performance instant messaging platforms.
- Spring Boot 3.2.0 - Application framework
- MyBatis 3.0.5 - Persistence framework
- MySQL 8.0.33 - Relational database
- Netty 4.1.68.Final - High-performance network communication framework
- WebSocket server
- Real-time message push
- Redis 3.0.0 - Caching and session management
- Redisson 3.18.0 - Redis client
- Pub/sub message distribution
- Advanced features like distributed locks
- FastJSON 1.2.83 - JSON serialization
- Apache Commons Lang3 3.12.0 - Common utilities
- Apache Commons Codec 1.16.0 - Encoding/decoding tools
- EasyCaptcha 1.6.2 - CAPTCHA generation
- Nashorn 15.4 - JavaScript engine
- Token-based user session management
- Custom annotation interceptors for access control
- Admin role verification mechanism
- WebSocket persistent connection management
- Channel context lifecycle management
- Redis pub/sub for multi-node message distribution
- Support for both private and group chats
- User registration and login
- Contact and friend relationship management
- Chat message persistence
- File upload and download
- Group chat creation and management
- Generic MyBatis base mapper
- Optimized XML mapper configuration
- Multi-tier Redis caching strategy
- Global exception handling
- Application startup validation
- Unified DTO design pattern
easychat/
├── src/main/
│ ├── java/ # Java source code
│ └── resources/ # Configuration files
├── pom.xml # Maven dependency configuration
└── README.md # Project documentation
The project uses Maven for build and dependency management, supporting one-click startup. For detailed configuration and startup guides, please refer to the project documentation.
This project demonstrates a typical architecture for modern Java web applications, combining the development convenience of Spring Boot, the high-performance network communication capabilities of Netty, and the distributed features of Redis. It is a complete enterprise-level instant messaging solution.