一个完整个springboot项目开发流程(毕设,源码暂不开放)

目录

一、前言

1.1、项目背景

1.2、项目需求

1.3、部分项目截图

1.3.1游客端​编辑

 1.3.2用户端

 1.3.3管理员端

 1.3.4信息发布端

二、项目概述 

2.1、项目总述

2.2、技术手段

三、设计思路

3.1、数据库UML设计(home)

3.2、功能分析

 3.3、建表

3.4、搭建项目架构

3.4.1、项目建立

3.4.2、后端建设

 3.4.3、配置依赖

3.4.4、前端建设

3.4.5、接口设计

四、项目内容

4.1项目结构

4.1.1 后端

4.1.2前端

4.2登陆

 4.3Result风格

4.2.2.1什么是result风格?

4.2.2.2怎么使用

 4.3分页显示

4.4评论功能

4.5信息发布(项目最核心部分)

五、遇到问题

5.1后端篇

5.2前端篇

5.2.1ajax写接口

5.2.2框架的使用

5.2.3为什么我只使用html不用js呢

5.3项目上线

六、项目上线(主要是流程,内容留意mysql部分的配置即可)

6.1购买服务器

6.2配置服务器

6.3下载安装xshell

6.4连接服务器并且下载jdk

6.5在服务器那下载mysql8

6.5.1mysql版本不同

6.5.2mysql密码是空的怎么改

6.5.3mysql卸载怎么卸载干净

6.5.4 安装mysql8

6.6 访问房地详细报500错误

 七、总结



一、前言

1.1、项目背景

此项目前端有部分来源于gitee和github,如有雷同纯属意外。我根据自己的需求和水平,主写后端和数据库部分,这个项目跟我以前做过的个人博客有点类似,都是属于信息发布系统,最核心部分就是commonmark把markdown转化为html,具体我后面会详细介绍。因为我主后端,所以前端部分不会详细描述,核心技术点会描述。

1.2、项目需求

系统角色:游客(没注册)、用户(注册了账号)、管理员

管理员可以对用户详细、房地信息、类型、标签进行发布管理

用户可对个人信息、本人房地信息发布管理

游客在浏览了首页遇到合适的房子,无论是租房买房还是出租卖房,针对用户对应需求可以留言或者打通用户发文留下的电话来联系用户。

1.3、部分项目截图

1.3.1游客端

 1.3.2用户端

 1.3.3管理员端

 1.3.4信息发布端

二、项目概述 

2.1、项目总述

此项目分为前台和后台、页面适配移动端,用户可进行个人信息修改,房地信息发布,管理员可进行用户个人信息修改、房地信息发布修改,评论、标签、分类管理、游客可以在评论区评论留言。

2.2、技术手段

前端:Semantic UI、thymeleaf、js、html、bootstrap

后端:SpringBoot、Spring、SpringMVC、Mybatis

插件:commonmark、markdown、lombok、logback

工具:idea、postman、maven、xhell、navicat

环境:阿里云ecs服务器一台(选的是centos7.9)、mysql8、jkd8

三、设计思路

3.1、数据库UML设计(home)

我记得我asp.net老师说过,一个项目只要解决数据库的关系就完成项目一大半工作了,我的数据库水平比较拉,所以建立的都是基本表,能后端实现的,就不在数据库实现了,下面是我数据库的内容。

一个完整个springboot项目开发流程(毕设,源码暂不开放)_第1张图片

3.2、功能分析

一个完整个springboot项目开发流程(毕设,源码暂不开放)_第2张图片

 3.3、建表

在我们得知需求以及数据库的构造后我们就开始建立表格了,这里推荐使用navicat

一个完整个springboot项目开发流程(毕设,源码暂不开放)_第3张图片

3.4、搭建项目架构

3.4.1、项目建立

首先就是建立个springboot的开发环境,我之前的博客有https://blog.csdn.net/weismwonameshuai/article/details/122282690?spm=1001.2014.3001.5502

3.4.2、后端建设

然后在后端建立这四个最基本的包,当然,不是说其它不重要,只是springboot项目也是mvc结构的,所以控制层、数据层和服务层必须有,同时实体类放在了pojo,命名看个人喜欢,跟动力节点学的喜欢把mapper写成dao,pojo写成domain,我是吃百家饭学的,主流还是这样命名。

一个完整个springboot项目开发流程(毕设,源码暂不开放)_第4张图片

 3.4.3、配置依赖

对于pom进行依赖的配置,刚开始配个mysql就行了,springboot起步依赖建立项目时候会自动导入(..答辩完后会贴代码)

3.4.4、前端建设

对于前端,刚开始当然是不写 ,后面写个简单接口就行了(..答辩完后会贴代码)

3.4.5、接口设计

接口采用的是result风格,后续也会讲解result风格的配置要求。

四、项目内容

4.1项目结构

一个完整个springboot项目开发流程(毕设,源码暂不开放)_第5张图片

4.1.1 后端

一个完整个springboot项目开发流程(毕设,源码暂不开放)_第6张图片一个完整个springboot项目开发流程(毕设,源码暂不开放)_第7张图片

4.1.2前端

一个完整个springboot项目开发流程(毕设,源码暂不开放)_第8张图片一个完整个springboot项目开发流程(毕设,源码暂不开放)_第9张图片

4.2登陆

登陆这块用到的技术手段就很常见了,拦截器结合session进行判断是否非法访问

当用户登陆后在session中会存储一个user的key,里面有用户的个人信息,然后登陆成功了后,用户会访问到用户的后台系统,此时拦截器发挥作用,这里重写了HanderInterceptorAdapter这个类,当用户访问后台,此时就会经过UserIntercepter这个类,然后就会判断session是否存在,存在就不拦截。当用户退出后,会注销session,所以会再次拦截访问后台管理。同理管理员登陆也一样。

 

一个完整个springboot项目开发流程(毕设,源码暂不开放)_第10张图片

一个完整个springboot项目开发流程(毕设,源码暂不开放)_第11张图片

 4.3Result风格

4.2.2.1什么是result风格?

REST的核心原则是将你的API拆分为逻辑上的资源。这些资源通过http被操作(GET ,POST,PUT,DELETE)。

简单来说就是接口以资源名字为主,然后通过发送请求方式的不同来区分增删改查的操作

GetMapping是查,PostMapping是添加、PutMapping是修改,DeleteMapping是删除

例如这个:

以前地址栏

例如:http://localhost:8080/index?id=1

restful风格后的地址栏:

例如:http://localhost:8080/index/1

4.2.2.2怎么使用

配置pom

    

        
            org.springframework.boot
            spring-boot-starter-thymeleaf
            2.3.1.RELEASE
        

配置yml(application)文件

spring:
  mvc:
    hiddenmethod:
      filter:
        enabled: true

 4.3分页显示

分页显示思路大体可以分成三种,一种是后端获取所有资源全部反馈给前端,前端再进行分页处理,一种是前端需要显示的部分资源再部分获取,还有一种是后端所有资源获取,然后后端分好每一次显示的资源数量,再发给前端。

三种方法都可以,我这个项目用的是第二种,以为第二种对于前端需要的能力较弱,我主后端,所以这个方法对我来说比较简单,只需要获取size和begin这两个参数就行了

4.4评论功能

评论区最麻烦的就是回复功能呢,在我找了好多篇博客以及上gitee上参考别人设计才想到用父id和子id这个想法(这里忘记把博主去掉了,原项目改编于一个个人博客项目),然后数据库又要改了

一个完整个springboot项目开发流程(毕设,源码暂不开放)_第12张图片

4.5信息发布(项目最核心部分)

信息发布这点就很简单了,我直接用回以前写个人博客那个项目里面的markdown插件,在用commonmark这个插件把markdown写的内容转化成html显示。

一个完整个springboot项目开发流程(毕设,源码暂不开放)_第13张图片

一个完整个springboot项目开发流程(毕设,源码暂不开放)_第14张图片

五、遇到问题

5.1后端篇

后端遇到bug我之前也开了个帖子写,后面没更新(过年拜访亲戚多,只能晚上再敲代码),无非就是依赖版本,接口写错,mapper.xml里面数据库漏了参数,异常抛出没有处理,拦截器写错天天404,说多了都是眼泪,以后工作后完善bug帖。

springboot毕设开发bug帖(不定期添加bug和解决思路)_溯逸的博客-CSDN博客

5.2前端篇

前端真的一生之敌,当时不是为了考研就去把前端vue也学了,现在考研也寄了,前端也半桶水,靠着点js和ajax写接口太难受了,后面复习了springboot里面自带的前端thymeleaf后才好点,起码会在前端写循环判断这些基本的语法了。感谢菜鸟教程以及csdn让我完成这个项目。

5.2.1ajax写接口

这里我遇到个卡了我四五个小时的坑,ajax使用后,后端检测数据都是正常的,sout大法,但是返回到了前端无反应,我现在还没搞懂,然后翻回去看了看以前写ssm船只管理系统

 这个项目后,发现也是一样的写法,现在还没搞懂,我新建了个项目测试又正常,真的很谜,最后采用了 经典以及

你可能感兴趣的:(spring,springboot,spring,boot,spring,java)