Java技能
熟练掌握Java基础知识,包括泛型、反射及代理等技术。
具备良好的面向对象编程思想,熟悉常用的设计模式(单例模式、工厂模式、代理模式、观察者模式、策略模式、模板方法模式)。
熟悉多线程和集合,对高并发有一定了解。
框架技能
熟悉Spring框架,包括IOC和DI、AOP编程。
熟悉Mybatis、SpringMVC、Spring Boot开源框架。,能够结合Vue2开发项目,了解RabbitMQ中间件
熟练掌握关系型数据库MySQL,能够对MySQL数据库进行优化,熟悉索引和事务。
熟练掌握Redis,能够进行高级的缓存操作和性能优化。
其他技能
熟悉Linux常用命令,能够进行基本的服务器维护和管理。
熟练使用Git进行版本控制,熟悉Maven项目管理工具。
项目描述: 我参与开发了一个企业即时通讯与协同办公平台,使用Spring Boot框架,数据库采用MySQL,前端用到了vue,采用MVVM设计模式前后端分离,我负责的主要模块包括用户注册与登录、即时通讯、文件传输、协同办公和联系人管理。
技术栈:Vue2+Spring Boot+MySQL+WebSocket+RabbitMQ+Redis+Mybatis-plus
主要工作/个人职责:
1、用户注册与登录
登录状态管理:通过JWT管理用户的登录状态。
登录安全验证:包括验证码验证和二步验证,增强登录安全性。
2、聊天功能
一对一聊天:用户可以进行一对一的实时聊天。
群聊:用户可以创建群聊并在群组中进行讨论。
文件传输:支持发送和接收各种文件类型,如文档、图片、视频等。
实时推送和离线处理:当有新消息时,检查接收方是否在线,如果在线,直接通过WebSocket推送消息,如果不在线,将消息保存到数据库或Redis缓存中,等接收方上线后再推送。
3、联系人管理
联系人搜索:用户可以搜索其他用户并添加为联系人。
添加删除联系人:用户可以通过用户名或邮箱添加删除联系人。
4、协同办公功能
任务管理:支持任务分配、进度跟踪和完成情况报告,提升团队工作效率。
日程安排:共享日历和会议安排,便于团队成员协调工作时间。
文档协作:在线文档编辑和共享,多人可以同时编辑和查看文档。
项目管理:提供项目规划、进度管理、资源分配等功能,支持复杂项目的管理和执行。
5、性能优化(Redis)
高并发处理:在短时间内大量用户涌入时,通过Redis进行快速读写缓存,降低数据库压力,提升系统响应速度,通过RabbitMQ对突发消息进行缓冲和排队,平衡系统负载,削峰填谷。
异步消息处理:在用户发送消息时,将消息放入RabbitMQ队列,由消费者异步处理消息推送,提升系统响应速度。
项目总结: 通过该项目,我熟练掌握了使用Spring Boot、RabbitMQ和Redis开发企业级应用的技术。在实际开发中积累了丰富的经验,包括异步消息处理、缓存管理、安全性设计、API接口设计和数据库优化等。这个项目不仅提升了我的技术能力,也增强了我在团队合作和项目管理方面的经验。