18.1 项目分析与模块划分(项目设计)-《SSM深入解析与项目实战》

最近有些朋友私聊我,说实战部分多久发,我想了想,如果按照《SSM深入解析与项目实战》那个专栏速度来更新,估计要明年年底了。所以新开了一个专栏,给有实战部分需求的朋友来进行订阅。我会尽快将该专栏更新完,本专栏更新完后,会提升价格,未订阅的朋友,可以订阅了。

此专栏的内容一定能够让你受益匪浅。

第20章节的一个大致目录:
21203532_RHqQLb

第5篇 实战篇

第18章 项目设计

本篇将完整地阐述如何开发一个企业级项目。先做几点申明:

  • 这里不会涉及对页面开发的讲解,只讲后端技术。

  • 在此项目中,前后端是不分离的。对于前后端分离,我的建议是,如果有专门的前端和后端,且开发资源足够,专人专项,那么可以选择前后端分离,否则前后端不分离也是可以的。

  • 这个项目,我是边写边开发的,是想把这个宝贵珠开发过程完整地展现出来,因此,在叙述时可能会有设计不合理或者功能遗漏的地方,但会在后面讲原因。这样做,是因为我认为,开发过程是宝贵的,没有任何人在一开始就能把项目的所有东西设计得完美无缺,只有让初学者一开始就接触不是非常完善的项目,真正感受完善的过程并参与其中,才能获得成就感。当然,在本书配套GitHub仓库中的项目,是完善的。

18.1 项目简介与分析

首先,这里开发的项目的主要功能是资源互换,比如A需要资源a,有资源b;B需要资源b,有资源c;C需要资源c,有资源a,他们可以通过这一项目上架自己的资源,也可以购买自己需要的资源。

我们简单地称这一项目为“资源平台”(以下称我们要开发的项目为资源平台)。资源平台作为中间商,为用户提供存储、交易的功能,并提供一种虚拟货币U币,用于购买资源。

A通过在平台上分享资源b,获得相应数量的U币,当有人购买资源b(比如B)时,A也能获得相应数量的U币,因此,A用获得的U币在平台上购买到他所需要的资源a。这是一个人人可以交易资源的平台。这里仅实现资源平台的两个核心需求:分享资源与下载资源。

下面来分析一下该项目需要的功能。

18.2 项目模块与相关技术

18.2.1 功能模块

首先,项目有两个大的模块:

  • 前台模块

  • 管理模块

前台模块可以分为资源、用户、活动和用户中心。管理模块可以分为用户管理、资源管理、活动管理和权限管理。

前台模块与管理模块功能的划分如图18-1所示。

模块划分-1
图18-1 模块划分

根据图18-1,项目开发相应地被分为三大块:admin-web、web和service。

18.2.2 前台模块

前台模块是面向用户的,主要分为以下几大部分。

  • 用户
    这里使用邮箱激活登录与手机号的登录注册方式实现用户的登录注册功能。登录注册功能需记录用户的IP地址、登录时间等登录信息。

  • 用户中心
    用户可以在用户中心编辑个人资料、管理评论、查看资源,以及U币的充值和获取记录查看等。

  • 资源
    这里重点实现资源的分享、评论和下载功能。分享资源只针对已注册的用户,且分享时需要定义下载价格。对于资源下载功能,设置资源下载有效时间为24小时。对于评论资源功能,要进行敏感词过滤,实现自动审核。

  • 活动
    这是一个扩展功能,不一定有,开启活动功能后,可在某些节假日对资源打折、抽奖、兑换等,这里只实现打折功能。

18.2.3 管理模块

该模块就是一个后端的管理功能,用来实现让系统管理员对前端的用户、资源、活动和权限进行管理,在这里,除了管理员、普通注册用户及游客,不再对于具体的用户进行权限的细分。

  • 用户管理
    用户管理,即对用户的增删改查,主要包括用户列表、用户编辑、禁用用户(不建议是删除用户,保留原始数据非常重要)等功能。还有用户评论管理功能,主要删除垃圾评论,如果自动审核未过滤,则还可以人工删除。

  • 资源管理
    资源管理,即对资源的增删改查。

  • 活动管理
    活动管理,即对活动的增删改查。

  • 权限管理
    权限管理中的“权限”,指购买之后方可操作的功能权限。例如,赋予注册用户用U币购买资源、下载资源的权限,控制某个资源的下载权限等。

18.3 技术分析以及依赖

通过功能来看,使用的技术点有哪些,作为一个技术人来说,通过需求,应该可以很快地判断出该需求用什么技术可以很快,很方便地实现。

在该项目中,并没有什么难点,都是一些非常简单易懂的操作,传统互联网项目,增删改查。开发语言定下来了,Java无疑。接下来选技术框架,我本人是非常希望该项目能够用Spring Boot来进行开发的,为什么,因为Spring Boot足够快,足够方便,而且有非常多的脚手架开源项目,可以一键生成从DAO层一直到Controller层帮你生成数据库表对应的所有单表增删改查操作。

但是,本书还是会用Spring MVC、Spring和MyBatis进行开发,如果你想更好的用好Spring Boot,那么对于Spring一定要熟悉,而且最好是用Spring开发过项目。可以简单地将Spring Boot看成是Spring的注解增强版,中间省去了非常多的操作,开发者如果不明白其原理,那么使用Spring Boot后上线出现问题,那么无疑是非常头疼的一件事。

Web容器的话,作为Java开发者,毫无疑问选择Tomcat。

然后是数据库,我选用MySQL,该数据库开源,也是目前开发者使用最多的SQL数据库。其次,如果为了能够提升系统的性能,需要选择缓存数据库,在这里,我选择Redis,因为它操作简单,性能快速,开发高效。

邮件的发送,有专门的Jar包可以进行发送。短信的发送我选择阿里大于短信平台。资源的存放,选择阿里云的OSS。自此,一些需要的技术依赖差不多就全了。

项目中所有的源码都可以在此链接的仓库中找到:https://github.com/chenhaoxiang/uifuture-ssm

谙忆 CSDN认证博客专家 Java
公众号:程序编程之旅。曾经写过C、C++,使用过Cocos2dx开发过游戏、安卓端、IOS端、PC端页面均开发过。目前专注Java开发,SaaS内核、元数据的研究。偶尔玩玩爬虫
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值