基于Springboot+RabbitMQ+Redis实现的高校社团管理系统

到山东找蓝翔

发布日期: 2021-09-11 07:20:40 浏览量: 138
评分:
star_border star_border star_border star_border star_border star_border star_border star_border star_border star_border
*转载请注明来自write-bug.com

1.项目简介

1.1 背景

当前,大多数高校的社团信息管理都是采用纸质档案的方式来管理的,这样不仅不能长期的保存信息,而且在数据的查找上带来很大的不方便。在目前的网络技术和计算机技术的普及和信息管理的迅速发展,使用计算机,但总的趋势来实现。校园社区管理也可以支持用料计算机信息管理等,利用网络实现信息共享。这样不仅符合现代的管理要求,而且有助于将信息管理推向科学化、规范化。同时,用计算机去管理信息拥有各种优势,比如稳定性高、使用年限长、检索迅速、保密性好、存储量大、开销低等。这些优点能够减少相关人员工作量,极大地提高社团信息管理的效率。社团管理系统是基于Java作为开发语言,使用MySQL数据库作为后端数据存储,使用Idea作为研发开发的工具,信息化管理已经在信息社会为目标来实现的。本文分析了现有的大学社区管理为出发点的现状,已经研究制定方案,详细的社区管理体制分析和功能分析,总结了系统,数据库设计和展示的最终控制系统的结果数据结构的设计框架的功能需要的可行性社区项目,介绍了该系统用实验来验证结果表明,所有有关的各种功能ESS发展,以及经验和发展不足。

1.2 项目描述

本系统基于B/S的结构进行开发,使用java编程,对三类不同角色的用户进行登陆控制,主要按照校园社团运行的规则分配权限和模块,使社团管理从纸质版变为无纸化,方便社团的管理和运行。前端页面主要使用Layui框架,主要使用table组件。首页显示每个社团的信息和社团活动,数据库设计使用PowerDesigner软件,采用中间表实现一对多、多对多的表结构关系。首页使用<c:forEach>标签循环遍历输出不同类型的社团并显示社团信息。登陆是根据从数据库找到的用户类型的不同,进入到不同的个人主页。进入主页可以对不同模块的表进行增删改查,审核表除外。SQL语句的XML文件要配置映射关系,使数据封装成功。在开发过程中,主要遇到的问题有首页显示社团信息时由于社团信息的介绍长度不同,导致页面不美观,后来在SQL语句中加入了Length()函数对社团信息的长度进行排序之后,再显示到前台页面。此项目更一步加深了我对三层架构模式的理解和Spring MVC、MyBatis、Layui框架的使用。

1.3 开发环境及技术栈

  • 开发技术:html、Springboot、Layui、Spring、Spring MVC、MyBatis、jQuery、Redis、RabbitMQ

  • 开发平台:Linux、JDK8、MySQL

  • 相关工具:IDEA、Tomcat、Navicat、Maven、PowerDesigner、Visio、UML

在设计中,采用MVC(Model-View-Controller)模式,将程序的逻辑和页面分离,维护起来更加方便。数据库设计遵循数据库设计三范式。使用Layer和jQuery实现对页面的美化和后台的交互。

1.4 功能

  • 管理员

    • 社团管理
    • 日记管理
    • 商城管理
    • 个人资料管理
    • 用户管理
    • 新闻管理
  • 普通用户

    • 注册登录
    • 加入社团
    • 浏览商城
    • 编写日记
    • 个人中心

2.数据库设计

2.1 表结构

浏览次数表

用户表

菜单表

日记表

商品信息表

主题表

2.2 E-R图

3.业务代码

  1. @RequestMapping("/bolgs")
  2. public String tomybolgs(Model model, HttpSession session){
  3. //查询出来跳转到我的日志页面
  4. IUser user = (IUser) session.getAttribute("user");
  5. //通过user_id查询出该角色的所有日志信息
  6. List<Log> logs = logService.getLogs(user.getId());
  7. model.addAttribute("logs",logs);
  8. return "mybolgs";
  9. }
  10. @RequestMapping("/logedite")
  11. public String edite(@Param("id")String id,Model model){
  12. //编辑数据,查询出数据后显示到edito中
  13. Log log = logService.getLogById(id);
  14. model.addAttribute("log",log);
  15. return "editbolg";
  16. }
  17. @RequestMapping("/logdelete")
  18. public String delete(@Param("id") String id, Model model){
  19. System.out.println("来到了delect中的数据源");
  20. logService.deleteById(id);
  21. return "mybolgs";
  22. }
  23. @RequestMapping("/logcheck")
  24. public String check(@Param("id")String id,Model model){
  25. Log log = logService.getLogById(id);
  26. model.addAttribute("log",log);
  27. return "bolg";
  28. }
  29. //图片上传
  30. @RequestMapping("/log/upload")
  31. @ResponseBody
  32. public ImgInfo setImgUrl(MultipartFile file, HttpServletResponse response, HttpServletRequest request) throws Exception {
  33. OSSClientUtil ossClientUtil = new OSSClientUtil();
  34. String s = ossClientUtil.uploadImg2Oss(file);
  35. String url = ossClientUtil.getImgUrl(s);
  36. String value =url;
  37. String[] values = { value };
  38. ImgInfo imgInfo = new ImgInfo();
  39. imgInfo.setError(0);
  40. imgInfo.setUrl(values);
  41. return imgInfo;
  42. }
  43. @ResponseBody
  44. @PostMapping("/addlog")
  45. public String addlog(@Param("ht")String ht ,@Param("themes") String theme,HttpSession session) throws ParseException {
  46. System.out.println(ht+"====="+theme);
  47. //获取user_id
  48. IUser user = (IUser) session.getAttribute("user");
  49. String id = user.getId();
  50. Log log = new Log();
  51. //获取当前系统的日期
  52. Date date = new Date(System.currentTimeMillis());
  53. String s = DateUtil.date2String(date);
  54. log.setDatee(s);
  55. log.setTheme(theme);
  56. log.setContent(ht);
  57. log.setUser_id(id);
  58. log.setEye(0);
  59. log.setUsername(user.getUsername());
  60. log.setId(UUIDUtils.getUUID());
  61. //查询出来把消息,保存到数据库中去
  62. logService.insertLog(log);
  63. return "mybolgs";
  64. }

4.项目展示

登录

首页

个人日记

个人信息

加入社团

编写日记

商城

5.总结

经过近期对 java 相关知识面向对象程序设计、Java Web等的掌握和学习,让我更加了解到 java 学习的重要性。在开发这个社团系统,我完成多个实验以及测试,在这个阶段的学习开发中,我从认识到熟悉,而后到能够自主运用。通过对Springboot和消息中间件Rabbit MQ知识以及数据库的设计相关的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好 java 语言是很重要的,所以在开发这个项目的过程中我都尽力理解 java 编程思想、掌握基本技巧,尽量学到最多的知识。 我学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,总体来说 java 面向对象程序设计是一门实践性比较强的语言。

上传的附件 cloud_download 设计文档.docx ( 1.61mb, 1次下载 ) cloud_download community.zip ( 25.97mb, 1次下载 )
error_outline 下载需要12点积分

发送私信

会冒泡的可乐

111
文章数
12
评论数
最近文章
eject