这一个多月写了一个Forum论坛项目,这篇文章算是一个总结吧,捋一下整体的流程。


  • 开发环境:idea 2018.01
  • 前端:JQuery+Bootstrap+layui(一个国人的框架,用的比较多,风格很喜欢)
  • 后端:Spring+SpringMVC+Mybatis
  • 数据库:Mysql

首先是项目结构和接口文档:



部分例子:





整体功能描述

  1. 用户登录注册
    需要判断多种情况,用ajax和后台交互判断用户名是否存在,用户是否被锁定等,记录用户登录日志,更新登陆时间,最后添加到session中。
  2. 发表主题帖
    在提交并保存主题帖中,需要进行相应操作例如主题帖数加一,插入Topic表,作者添加10个积分等等。
  3. 回复主题帖
    在model获得topic和user后,插入回复数据更新回复时间,给用户添加积分,刷新页面等等
  4. 删除帖子
    删帖子,扣积分没啥好说的。
  5. 论坛板块管理
    指定论坛管理员,顶置加精,权限设置等等(暂时写了一部分)。
  6. 用户个人资料管理,头像上传。

数据库设计

数据库采用7张表,自增id,可以找到对应的model层PO类


(这里没有对密码进行复杂加密)


持久层设计

此处采用了Mybatis 的generator 生成了PO类,基础mapper文件,dao层接口,后续只需添加相应功能即可。例:

public interface PostMapper {int deleteByPrimaryKey(Integer postId);int insert(Post record);int insertSelective(Post record);Post selectByPrimaryKey(Integer postId);int updateByPrimaryKeySelective(Post record);int updateByPrimaryKeyWithBLOBs(Post record);int updateByPrimaryKey(Post record);List<Post> selectByTopicId(int topicId);Post getHostTopicInnerText(int topicId, int userId);
}

服务层设计

service是业务层,是使用一个或多个模型执行操作的方法。
1. 封装通用的业务逻辑,操作。 如一些数据的检验,可以通用处理。
2. 与数据层的交互。
3. 其他请求:如远程服务获取数据,如第三方api等。

例:

public interface UserService {boolean checkLogin(String username, String password);int returnSumUser();User findUserByName(String username);void lockUser(String username);boolean isLocked(String username);void addCredit(String username, int creditNum);void setLoginLogAndDate(String username, Date date, String addr);void register(String username, String password);User selectByUserId(int id);void updateAddressOfPic(int userId,String address);UserDetailed findById(int userId);List<RecentUser> RecentUserData();
}

controller

部分例子:

@Controller
public class RegisterController {@Autowiredprivate UserService userService;@Autowiredprivate ForumService forumService;@ApiOperation(value = "返回注册页面",httpMethod = "GET")@RequestMapping(value = "/user/register",method = RequestMethod.GET)public String reg() {return "register";}@ApiOperation(value = "注册跳转",httpMethod = "POST")@RequestMapping(value = "/registerPro", method = RequestMethod.POST)public String register(@RequestParam String username, @RequestParam String password) {userService.register(username,password);return "redirect:/login";}@RequestMapping(value = "/user/detail/{userId}",method = RequestMethod.GET)@ApiOperation(value = "返回个人页面信息",httpMethod = "GET")public String userDetail(@PathVariable int userId, Model model) {model.addAttribute("username", userService.selectByUserId(userId).getUserName());model.addAttribute("info", userService.findById(userId));model.addAttribute("topicInfo", forumService.selectByuserId(userId));return "userInfo";}@ResponseBody@ApiOperation(value = "上传图片接口",httpMethod = "POST")@RequestMapping(value = "/upload/usericon", method = RequestMethod.POST)public Object uploadIcon(HttpServletRequest request, MultipartFile file,@RequestParam String id) throws IOException {String path= UploadPictureUtil.addMutiparFile(file,request.getSession().getServletContext().getRealPath("/"));Map result=new HashMap();result.put("path",path);result.put("id", id);//保存图片链接到数据库userService.updateAddressOfPic(Integer.valueOf(id), path);return  result;}
}

界面不是太丰富,主要用的layui这个基于css,jQuery,js的框架,一些导航,提示信息,布局还是很容易入门的,提别提示一下layui这里在script里写具体操作。

<script>layui.use(['jquery', 'layer'], function(){var $ = layui.$ //重点处,layer = layui.layer;$(document).ready(function(){$("#new").click(function () {if (${empty user}){layer.msg("请先登录!");}else {window.location.href="/addTopic";}});})})
</script>

可以参考下载

https://download.csdn.net/download/orochi1972/10617592


一些问题总结

文章很短不能全部贴出代码,总结一下遇到的问题吧。

  1. maven,mvc文件配置
  2. 前端获取数据json,ajax数据交互
  3. pagehelper分页
  4. 测试junit相关问题
  5. restful风格
  6. 上传图片数据库保存再获取
  7. request数据转码UTF-8
  8. swagger2接口文档

一个基于ssm的论坛社区项目相关推荐

  1. ssm项目模板_基于SSM的论坛系统发布可商业、学习、毕设

    基于SSM的论坛系统发布,界面非常的漂亮,功能很齐全,非常的6-- SSM旅游论坛是一款基于JAVA企业级平台研发的社交管理系统,是一个可以用来搭建门户.群组.论坛和问答的社区系统,是将SNS社会化网 ...

  2. 基于ssm的BBS社区论坛系统

    基于ssm的BBS社区论坛系统 项目介绍 项目描述 前台部分 后台部分 项目展示 获取方式 项目介绍 该项目可以用作计算机毕业设计.Java项目学习使用. 运行环境 :idea+mysql5.7+jd ...

  3. 基于ssm的论坛系统的设计与实现【附源码】

    基于ssm的论坛系统的设计与实现 摘 要 早期的网络论坛系统已经诞生一段时间,随着互联网技术的发展,它已经从最初的简单电子公告板系统变成了一种丰富的论坛系统社区模型.人们通过论坛系统进行信息的获取.发 ...

  4. 【java毕业设计源码】基于SSM的疫情社区物资配送系统

    目录 一.程序介绍: 三.文档目录: 四.运行截图: 五.数据库表: 六.代码展示: 七.更多学习目录: 八.互动留言 一.程序介绍: 文档:开发技术文档.参考LW.答辩PPT,部分项目另有其他文档 ...

  5. RDC如何构建一个基于NodeJS的前后端项目

    摘要: 最近在将公司的持续集成架构做一个系统的调整,调整过程中受到了RDC团队大量的帮助,所以利用国庆时间写了几篇RDC的分享,希望能让更多的人了解和用好RDC这个产品. 我会把我最近3个月的使用体会 ...

  6. 基于ssm影视论坛系统java web jsp电影评价影评系统源码和文档

    开发环境: jdk 8 intellij idea tomcat 8.5.40 mysql 5.7 所用技术: Spring+SpringMVC+MyBatis layui jsp 演示视频: 基于s ...

  7. 杨校老师项目之基于SSM大学生创新创业项目管理系统

    1. 获取代码: 自助下载获取:https://download.csdn.net/download/kese7952/85357941 2. 项目描述 基于SSM框架开发的大学生创新创业项目管理平台 ...

  8. 使用eclipse创建基于SSM+Maven的小项目(简单的增删改查)

    使用eclipse创建基于SSM+Maven的增删改查 开发环境 效果图 数据库 项目如下: 项目结构及pom.xml 资源文件夹 db.properties mybatis-config.xml a ...

  9. 老师让我实现一个基于SSM的在线租房系统

    学完SSM课程,老师让交毕业设计,每个人定一个题目,给我分配的是一个在线租房系统,我的个天,SSM学了个皮毛,啥都不会,还要独立做个系统?不是要人命啊,还好有贵人相助,今天就给大家展示一下我这个在线租 ...

最新文章

  1. socket使用多进程实现并发的服务器
  2. 计算机网络-基本概念(4)【网络层】-IPv4向IPv6过渡
  3. 花了100多去KTV不是唱歌,竟然是……
  4. Linux 小知识翻译 - 「Linux的吉祥物企鹅叫什么名字?」
  5. windows 8.1 IE11 和 windows 10 Edge IE11 FlashPlayer 的安装与卸载
  6. QT5日志功能(qDebug、qWarnng、qCritical、qFatal)
  7. python中文教程github_GitHub - Virile-Tao/python_data_structures_and_algorithms: Python 中文数据结构和算法教程...
  8. 项目管理(七)- 项目利益相关者责任
  9. 《深度学习推荐系统》读书笔记
  10. wincc控件包下载_Simatic HMI WinCC V7.4 SP1 组态软件下载
  11. 使用Retrofit和Rxjava实现外卖型二级列表购物车及进入地图显示位置信息
  12. 自定义打卡签到view
  13. 08_基于IP的伪装
  14. 在生成式AI的崛起中,百度“先下一城”
  15. 手工轻松发送匿名邮件
  16. 京东涉足B2B 叫板阿里巴巴
  17. 服务器导入导出文件,Excel Server Tutorial
  18. 齐岳离子液体[C1MIm]SbF6/cas:885624-41-9/1,3-二甲基咪唑六氟锑酸盐
  19. 如何给多个pdf批量加水印?
  20. 2023-05-23-数据结构课程设计

热门文章

  1. 市值暴跌3000亿背后的360
  2. IPFS——下一个Http取代?
  3. 昆仑通态TPC7022Ex和s7-200 smart以太网通讯的通讯
  4. Modbus扫描工具
  5. 计算机操作员试题集2010版第七章,计算机系统操作师(中级)试题集(Office 2010版)...
  6. asp.net ajax第一卷读后
  7. 传播智客学习笔记--L10Junit单元测试
  8. 受了刺激,决定专升本
  9. 总结(最强王者组 王振波 胡鹏飞 孙晓萌 张西辉)
  10. 特斯拉公布的「新电池」,究竟要用在哪里?