最近接触了idea开发工具,稍微看了下spring boot。本着对spring mvc的一些小经验,开发个投票项目的服务端。时间上大约花了周末两天。乍一看需求感觉是很简单,但是在真正做的时候对业务逻辑的处理上还是一丁点的马虎都不能有,REST接口需要满足健壮性、合理性需求,并且几乎不允许有bug出现(给自己的目标)。

一切不基于需求的后台设计都是耍流氓。先列下需求:

需求设计

整个程序模块:普通用户的登录和注册模块,管理用户的登录模块,用户投票模块,管理员功能模块
普通用户的注册模块:注册的时候有用户名,密码,学校,等。存在的用户名,不能再注册
普通用户的登录模块:用户名,密码登录
管理员用户登录模块:用户名,密码登录,管理员不注册,后台给创一个管理员用户。
用户投票模块:用户登录后,进入一个投票项的列表(可以的话加个查询投票项),然后选择一个投票项,进入下个页面,显示题目
题目都选完之后进入显示结果页面,(可以的话多选)。

基于需求,下面开始进行数据库设计。

数据库设计

数据库设计部分很重要,需要根据实际业务场景,将所需的几个表以及表结构梳理出来。前期肯定会有一些考虑不周的地方,这种情况只能是尽量做到考虑全面,等实际开发过程中会再遇到某些问题的时候再斟酌对数据库进行变更。
当下可以理清楚的几个表如下:

  • user,即用户表。
  • vote, 即投票信息表。
  • vote_options,即投票选项。与vote表关联。
  • vote_user,即投票用户。关联表,关联user-vote-vote_options表。

系统设计

Maven+Spring+Spring boot+mybatis+mysql
项目目录:

比较传统的一个小项目 = =!

接口设计

采用Restful风格接口。(虽然有时候会不那么restful,哈哈)
用户相关接口

  • 登录:/user/login
  • 注册:/user/register
  • 用户信息:/user/info

投票相关接口

  • 创建投票:/vote/create
  • 投票列表: /vote/list (还没加分页)
  • 删除投票: /vote/delete
  • 用户投票:/vote/vote
  • 投票详情:/vote/detail

项目开发

开发完成后,已经将项目传到github了。有兴趣可以fork下看看。另外备注下,本人之前是做安卓的,自学并做了几个java后台项目,后台学习到的知识不少,尤其对逻辑严谨性有更深刻认知。只是感慨,后台要学的东西也不少,路还很长,哈哈,“通”这个词精髓了!

项目下载地址

开发一个投票项目的JAVA服务端-SSM项目相关推荐

  1. 微信小程序开发之图片上传+Java服务端接收

    闲言少叙直入正题 前端代码在网上一搜一大堆,且搜出来的结果基本上是正确的,没啥好说的,我连代码都不想贴(如果有时间的话明天整理下贴在文章结尾,没时间的话就不贴了).但是,但是,但是,靠谱的,不用改动就 ...

  2. 企业是如何从头开发一个商业项目的?

    对于还没有参与过项目的同学,大都与企业项目开发的流程都感到特别的好奇!项目对于程序员来说像是自己的孩子,自己看着一步一步成熟,完善!最后到独立的运行!然后大多数程序员都如含泪老母亲一样,看这自己的项目 ...

  3. 使用Eclipse发布一个依赖于其他项目的java项目,被依赖的项目不能自动编译,因而引发notfoundClass的异常。...

    编号 007 错误.问题类型 java 开发 描述 使用Eclipse发布一个依赖于其他项目的java项目,被依赖的项目不能自动编译,因而引发notfoundClass的异常. 解决方案 选择主项目点 ...

  4. java服务器向客户端发消息_java一个简单的客户端向服务端发送消息

    java一个简单的客户端向服务端发送消息 客户端代码: package com.chenghu.tcpip; import java.io.IOException; import java.io.Ou ...

  5. java服务端集成极光消息推送--详细开发步骤

    1.极光推送账号准备 要使用极光消息推送必须先在官方网站上注册账号,并添加应用. 产品介绍:https://docs.jiguang.cn/jpush/guideline/intro/ 注册开发者账号 ...

  6. Flex通信-Java服务端通信实例

    Flex与Java通信的方式有很多种,比较常用的有以下方式: WebService:一种跨语言的在线服务,只要用特定语言写好并部署到服务器,其它语言就可以调用 HttpService:通过http请求 ...

  7. 那些年,我们见过的 Java 服务端“问题”

    导读 明代著名的心学集大成者王阳明先生在<传习录>中有云: 道无精粗,人之所见有精粗.如这一间房,人初进来,只见一个大规模如此.处久,便柱壁之类,一一看得明白.再久,如柱上有些文藻,细细都 ...

  8. app及Java服务端实现JT808协议的定义解析

    app及Java服务端实现JT808协议的定义解析,可以用做行车记录仪等的app. 网上很多帖子已经对JT808协议做了说明,我在这里就不做过多的赘述了. 最近接到一个项目是打车类的,所以对这协议做了 ...

  9. java服务端集成信鸽推送

    java服务端集成信鸽推送 最近项目需要集成推送功能,突发奇想的选了信鸽推送(可能是最近一直在用阿里的东西),没想到这坑不是一般的多,而且关于详细的集成案例,度娘上真是没一个能入眼的.算了,别的不多说 ...

最新文章

  1. 【力扣网练习题】实现 strStr()
  2. Microbiome:肠道菌群失衡促进高血压
  3. 卫星发现一个重要信号:路上货车跑起来
  4. CT基本概念(必须掌握)
  5. Chapter7-7_Deep Learning for Coreference Resolution
  6. 迭代器之输入和输出迭代器
  7. android sqlite assets,使用GreenDao加载assets下sqlite数据库的示例
  8. 【CCNA考试】2010-05-24-武汉-872(PASS)
  9. (十)Hibernate的一对一关联关系
  10. 取消idm下载器和google浏览器的关联(让谷歌浏览器禁止使用idm插件)
  11. 股票数据Scrapy爬虫-Python网络爬虫与信息提取-北京理工大学嵩天教授
  12. 生成PDMS管口方位图 python方案
  13. 黑马程序员:一些简单的设计模式
  14. try的动词用法_try的用法_tries与try的用法,请分别举例说明。谢!
  15. 【顺序表】SqList *L是什么意思
  16. java释放资源_JAVA 手动释放资源问题
  17. 【JAVASE】HashMap与TreeMap的排序与存储对象的区别
  18. 【Leetcode_SQL】1179.重新格式化部门表
  19. 三星手机android版本升级包,三星平板电脑N8000闪存机将Android版本升级到7.1的过程记录...
  20. Centos8修改mysql密码

热门文章

  1. java 微信海报的实现
  2. VQA的应用(调研)
  3. 原来iPhone手机也能充当门禁卡,简单操作几步,就能轻松开启
  4. docker安装jdk8(二)
  5. 游戏开场是一个博士在计算机,计算机博士告诉你 为什么游戏里的AI都是猪队友...
  6. 写个AI虚拟主播:看懂弹幕,妙语连珠,悲欢形于色,以一种简单的实现
  7. linux0.99网络模块-网络层(接收)
  8. centos挂载盘到根下_Centos 扩容根分区大小,挂载磁盘到跟目录
  9. 模拟easeljs做动画
  10. 事件研究法笔记 - Stata连享会