SpringBoot搭建JavaWeb后端-Version3

GitHub:https://github.com/kevinten10/springboot-lifecat



引言

LifeCat是一个Javaweb的项目,它的设计目标是智能化的儿童成长相册记录系统。主要业务有用户模块的管理,图像上传与图像展示,朋友圈动态的发表,使用机器学习的图像分类与图像管理等。

现阶段由五部分组成,基于STM32开发板的实体电子相册,配套的Android相册应用,以及主要部分Javaweb。

其中核心部分Javaweb分为三个模块:
1、version1为web服务网站的初级版本,使用基本的jsp+servlet+mysql搭建,前端使用基本的html+css+js组成,同时jsp中使用了JSTL标签,采用了bootstrap的样式库以及jquery库,实现了登录注册逻辑的处理,数据表的CRUD基本操作以及图片上传展示等基本功能。
访问文章:

2、version2为web服务网站对应的后台管理系统,后端使用了SSM(spring+springmvc+mybatis)框架,MySQL数据库结构和version1相同。前端对version1的jsp页面进行了改进,抛弃了jsp而全部使用html,使用js+jquery实现前端操作。html使用了组件化的理念,通过js动态的进行tap切换。同时使用Ajax发送请求。
访问文章:

3、version3为新版的web服务网站,在version1及version2的数据库结构上进行了改进,加入了如权限、评论等新模块,采用了前后端分离的理念,后端采用springboot搭建,同时采用了maven多模块化开发,项目进行了清晰的分层。前端采用vuejs搭建,实现了更美观的界面设计。
访问文章:

本文为version3 SpringBoot搭建JavaWeb后端:

接口文档-采用swaggerAPI:LifeCatAPI (正在开发中..)

一、项目模块结构分析

1、项目架构,来自《阿里巴巴Java开发手册》,本项目中将manager层与service对调,使用manager进行service的整合管理

2、项目maven模块化开发

总目录

二、各模块结构分析

1、common

common 工具类、中间件服务等

aop:

AOP切面控制,未完成 TODO截获controller信息

email:

Java mail 服务,可发送邮件,结合jms消息队列使用,可选功能

exception:

自定义异常,结合controller中的异常控制器实现统一的异常管理

jms:

使用activemq实现异步消息服务,可结合mail使用,可选功能

utils:

工具类

2、dao

mybatis接口层,使用通用mapper无需写sql

mapper:

使用tk.mybatis开源库下的通用mapper进行sql操作,从而无需写mybatis的xml文件以及mapper中的方法即可实现基本的sql操作,接口继承 extends Mapper<GroupRoleDO> ,通过泛型指定的数据库实体类选择相应的mapper

3、entity

实体类

dto:

data transport object 数据传输对象

用于除vo 以及 do 之外的数据传输

entity:

即do :data object 数据对象

和数据库中的数据表一一对应,并且由于使用通用mapper,必须和字段实现驼峰映射后完全对应

vo:

view object 视图对象

对应于前端界面的操作对象,通过和do之间的转换,实现前端数据对象和数据库数据对象之间的转换

4、manager

service管理

image:

图像模块,包括相册模块和图片模块

message:

信息模块,包括用户的通知信息与系统的日志信息

record:
记录模块,即用户的说说动态,以及相应的评论功能

user:

用户模块,包括用户账号,用户资料等

test:

接口测试类

5、service

service业务逻辑

基于RESTful风格的接口设计,
对资源的操作可以统一为(all,list,get,create,update,delete)六种类型,
因此可以使用BaseService对六种方法进行封装,

同时由于使用了通用mapper,
因为sql操作也可以抽象为(all,list,get,create,update,delete)六种类型,
故使用BaseExecute进行抽象的实现。
当service实现接口后,可以对资源进行约定的基础六种操作,也可以使用拓展的方法,
从而实现了高复用和高可用,有利于程序的逻辑清晰。

authorization:

用户的权限管理 和 认证管理

image:

相册服务,实现用户的相册操作,以及对图片的直接操作

message:

消息服务

record:

记录模块,包含记录的增删改查以及评论的功能

user:

用户模块,包含用户账号服务,用户信息服务

test:

测试类authorization:

用户的权限管理 和 认真管理

image:

相册服务,实现用户的相册操作,以及对图片的直接操作

message:

消息服务

record:

记录模块,包含记录的增删改查以及评论的功能

user:

用户模块,包含用户账号服务,用户信息服务

test:

测试类

6、web

controller

1、启动类 启动入口
2、resources下为application文件,进行类似于SSM中配置文件的功能
基于RESTful风格的接口设计,
对资源的操作可以统一为(all,list,get,create,update,delete)六种类型,
因此可以使用BaseController对六种方法进行封装,
(BaseController抽象类实现了BaseService和BaseExecute接口,故具有service的六种服务,以及六种服务的基础execute方法)
controller基于restful风格对资源进行操作,调用manager或service

authorization:

用户的权限管理 和 认证管理,如用户登录和权限信息

image:

相册服务,实现用户的相册操作,以及对图片的直接操作

message:

消息服务

record:

记录模块,包含记录的增删改查以及评论的功能

user:

用户模块,包含用户账号服务,用户信息服务

test:

测试类

ExceptionController:

统一的异常处理机制,通过抛出自定义异常,实现对异常的统一管理,杜绝随处可见的trycatch,使代码逻辑清晰。

三、项目源码

项目中标注了大量的注解,其实是比较容易读的,基本都覆盖了,若出错则认真查看日志,找到相关内容修改即可

GitHub:https://github.com/kevinten10/springboot-lifecat

相应的version1项目:
文章: jsp+servlet搭建JavaWeb-Version1
GitHub: kevinten10/lifecatweb

相应的version2项目:
文章: SSM框架搭建JavaWeb管理系统-Version2
GitHub: kevinten10/SSM-lifecat

相应的version3前端项目:
文章: Vuejs搭建JavaWeb系统前端-Version3
GitHub: https://github.com/kevinten10/Web-lifecat

猜你喜欢

转载自blog.csdn.net/wsh596823919/article/details/81389475