SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
SpringBoot所具备的特征有:
1.7.1可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
1.7.2内嵌Tomcat或Jetty等Servlet容器;
1.7.3提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
1.7.4尽可能自动配置Spring容器;
1.7.5提供准备好的特性,如指标、健康检查和外部化配置;
1.7.6绝对没有代码生成,不需要XML配置。
-
- MVVM模式
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
-
- Mysql数据库
科技的进步,给日常带来许多便利:教室的投影器用到了虚拟成像技术,数码相机用到了光电检测技术,比如超市货物进出库的记录需要一个信息仓库。这个信息仓库就是数据库,而这次的个人网站系统也需要这项技术的支持[7]。
用MySQL这个软件,是因为它能接受多个使用者访问,而且里面存在Archive等。它会先把数据进行分类,然后分别保存在表里,这样的特别操作就会提高数据管理系统自身的速度,让数据库能被灵活运用。MySQL的代码是公开的,而且允许别人二次编译升级。这个特点能够降低使用者的成本,再搭配合适的软件后形成一个良好的网站系统。虽然它有缺点,但是综合各方面来说,它是使用者的主流运用的对象[8]。
本次设计基于B/S 模式下,运用Java语言用的是MySQL数据库,总体的可行性共分为以下三个方面。
所谓的技术可行性就是在限定时间,前期拟定的功能能否被满足。在开发设计上是否会遇上解决不了的问题。做完的项目能否被很好地应用,如果存在缺点在后期的维护上是否存在很大的难度。在对这个系统评估后,认定已存在的技术能达成目标。来实现动态的页面,嵌入低依赖性的设计模式,灵活的数据库,配合稳定的服务器,整个系统的运行效率大大提升。由此可见,在技术层面达成目标不是非非之想。
在项目上使用的工具大部分都是是当下流行开源免费的,所以在开发前期,开发时用于项目的经费将会大大降低,不会让开发该软件在项目启动期受到经费的影响,所以经济上还是可行的。尽量用最少的花费去满足用户的需求。省下经费用于人工费,以及设备费用。将在无纸化,高效率的道路上越走越远。
本系统实现功能的操作很简单,普通电脑的常见配置就可以运行本软件,并且只要粗通电脑使用的基本常识就可以流畅的使用本软件。电脑具备连接互联网的能力,并且可以正常访问系统,并不需要操作者有什么高超的能力,只需了解业务流程,并且按照专业知识进行正确操作即可,所以个人网站系统具备操作可行性。
在系统开发设计前,应该对功能做初步设想,清楚这个管理系统有什么板块,每个板块有什么功能,整体的设计是否满足使用者的需求,接着对所开发的系统功能进行的详细分析总结,从而设计出完整的系统并将其实现。用户和开发人员的交流分析,使其达到最佳理解程度,使系统功能达到最佳。
用户用例图如下所示。
图3-1 用户用例图
管理员用例图如下所示。
图3-2 管理员用例图
个人网站系统在对需求做解析后,整个系统主要分为两个部分:管理员和注册用户,每个模块下的分支功能不一样。对功能做出如下说明:
注册用户模块:
账号注册。
账号登录认证。
管理个人资料信息,修改可修改的信息项。
发布作品,同时对自己的作品进行维护,删除、修改等。
发布留言,同时对自己的留言进行维护,删除、修改等
查看公告。
查看文章。
管理员模块:
维护普通用户,可以冻结普通用户的登录权限,或者删除普通用户账号。
作品管理,并可以对于不合规某个作品执行删除,更新作品数据,模糊搜索作品数据等。
发布公告,对系统公告有增删改查的功能。
管理文章分类、文章推荐等数据。
查看普通用户提交的留言数据,并对用户的留言作出回复。
系统非功能需求有非常多,比如性能需求、可承载最大用户数、稳定性、易用性需求等。本系统分析时考虑到易用性需求,因为系统是给人使用的,所以必须充分从用户的角度出发,考虑用户体验,使系统易理解易上手易操作。
零层数据流程图包括了登录注册、用户功能和检索维护等模块,在登录注册模块使用到的数据存储有用户账户文档,用户功能模块需要的存储是用户各功能模块数据文档,检索维护是使用以上这些数据文档通过关键词进行检索。
系统的零层数据流图如下图所示。
图3-2系统数据流图(零层)
一层数据流程图是对零层数据流程图的细化,将登录注册细分为填制登录注册数据和完善数据,用户功能细分为用户基本功能和用户主要功能。
系统的一层数据流图如下图所示。
图3-3系统数据流图(一层)
二层数据流程是对一层数据流层图中填写登录注册信息、用户功能的细化。即:填写登录注册信息细化为填制信息、后台审核,用户功能细化为作品查询、客户提交留言、查看文章、查看公告等操作。
目前B/S体系的系统主要的数据访问方式是:通过浏览器页面用户可以进入系统,系统可以自动对用户向服务器发送的请求进行处理,处理请求是在系统后台中进行的,用户在浏览器页面上进行相应操作,就能够看到服务端传递的处理结果。个人网站系统主要分为视图-模型-控制三层架构设计。在视图层中,主要是操作在服务器端向客户端反馈并显示的数据,在模型层中,主要处理相关的业务逻辑、数据整合等,最后的控制层它介于视图和模型之间,主要是调整两层之间的关系,最终落实数据的传递。
系统架构图如下图所示。
图4-1系统架构图
系统设计的目的是分析系统包括的所有功能结构,为开发人员设计开发和实现系统做好准备工作。经过前期的需求调查、分析和整理之后,确定的总体需求主要包括多个模块,分别是:用户管理、作品分类管理、作品管理、留言箱管理、公告管理、文章分类管理、文章推荐管理。系统整体角色分为三个部分,一是游客、二是普通用户、最后是管理员。权限分布也是很明显,游客即是无需任何验证便可浏览相关信息;普通用户是在除去浏览信息之外还具有查询和管理自己账户信息、发布作品、反馈留言、个人资料修改等权限;管理员是最高权限拥有者。
系统功能结构图如下图所示。
图4-2系统功能结构图
用户管理模块
该模块是为所有用户登录设计的,如注册用户这种普通用户登录后只能进行自己的普通功能操作(如个人信息修改),管理员登录后有不同的权。管理员能对整个系统的数据进行管理,主要是用户的登录权限以及用户登录后在系统里的操作权限。
作品管理模块
管理员增删改查作品分类模块,用户能录入作品数据,,点击作品添加按钮,选取对应的作品类型,依次填写要录入的菜品数据,点击提交按钮,将数据提交至数据库,然后刷新彩票数据页面,数据列表页面有删除和编辑按钮,来完成相应的删除和更新功能。
留言箱模块
根据留言箱的流程,普通用户提交留言数据,在个人后台便可以查看到历史提交的留言数据,管理员来维护留言数据,审核确认已存在的留言数据。
公告管理模块
公告模块分为管理员管理公告信息,用户登录系统后,能查看管理员发布的公告信息。
对于一个要开发的系统来说,E-R图可以让别人能更快更轻松的了解此系统的事务及它们之间的关系。根据系统分析阶段所得出的结论确定了在个人网站系统中存在着多个实体分别是用普通用户、管理员、作品、留言、公告、文章。
系统总体ER图如下图所示。
图4-4系统总体ER图
数据库逻辑结构就是将E-R图在数据库中用具体的字段进行描述。用字段和数据类型描述来使对象特征实体化,最后形成具有一定逻辑关系的数据库表结构。个人网站系统所需要的部分数据结构表如下表所示。
Classification_of_works表:
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
classification_of_works_id | int | 11 | 是 | 是 | 作品分类ID |
work_type | varchar | 64 | 否 | 否 | 作品类型 |
examine_state | varchar | 16 | 是 | 否 | 审核状态 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 是 | 是 | 否 | 创建时间 |
update_time | timestamp | 是 | 是 | 否 | 更新时间 |
Message_board表:
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
message_board_id | int | 11 | 是 | 是 | 留言墙ID |
title | varchar | 64 | 否 | 否 | 标题 |
message_time | date | 0 | 否 | 否 | 留言时间 |
content | text | 0 | 否 | 否 | 内容 |
message_person | int | 11 | 否 | 否 | 留言人 |
examine_state | varchar | 16 | 是 | 是 | 审核状态 |
examine_reply | varchar | 255 | 否 | 否 | 审核回复 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
Works表:
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
works_id | int | 11 | 是 | 是 | 作品ID |
work_number | varchar | 64 | 是 | 否 | 作品编号 |
name | varchar | 64 | 否 | 否 | 名称 |
work_type | varchar | 64 | 否 | 否 | 作品类型 |
details | longtext | 0 | 否 | 否 | 详情 |
release_time | date | 0 | 否 | 否 | 发布时间 |
uploader | int | 11 | 否 | 否 | 上传人 |
cover | varchar | 255 | 否 | 否 | 封面 |
examine_state | varchar | 16 | 是 | 否 | 审核状态 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
User_group表:
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
group_id | mediumint | 8 | 是 | 是 | 用户组ID: |
display | smallint | 4 | 是 | 否 | 显示顺序: |
name | varchar | 16 | 是 | 否 | 名称: |
description | varchar | 255 | 否 | 否 | 描述: |
source_table | varchar | 255 | 否 | 否 | 来源表: |
source_field | varchar | 255 | 否 | 否 | 来源字段: |
source_id | int | 10 | 是 | 否 | 来源ID: |
register | smallint | 1 | 否 | 否 | 注册位置: |
create_time | timestamp | 0 | 是 | 否 | 创建时间: |
update_time | timestamp | 0 | 是 | 否 | 更新时间: |
User表:
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
user_id | mediumint | 8 | 是 | 是 | 用户ID: |
state | smallint | 1 | 是 | 否 | 账户状态: |
user_group | varchar | 32 | 否 | 否 | 所在用户组: |
login_time | timestamp | 0 | 是 | 否 | 上次登录时间: |
phone | varchar | 11 | 否 | 否 | 手机号码: |
phone_state | smallint | 1 | 是 | 否 | 手机认证: |
username | varchar | 16 | 是 | 否 | 用户名: |
nickname | varchar | 16 | 否 | 否 | 昵称: |
password | varchar | 64 | 是 | 否 | 密码: |
| varchar | 64 | 否 | 否 | 邮箱: |
email_state | smallint | 1 | 是 | 否 | 邮箱认证: |
avatar | varchar | 255 | 否 | 否 | 头像地址: |
create_time | timestamp | 0 | 是 | 否 | 创建时间: |