LifeCat系列Javaweb学习项目(二)
GitHub源码(可运行):https://github.com/kevinten10/SSM-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搭建,实现了更美观的界面设计。
访问文章:
本文为version2 SSM后台管理系统:
一、展示
1、网站前端页面展示
使用HTML+CSS(bootstrap)+js(jquery)+layer弹窗库搭建
用户管理模块-数据表的增删改查
主页面-通过tap进行面板的切换
图像管理模块-数据的增删改查
2、项目目录结构
使用maven管理项目结构,Java下为Java程序,resources存放资源文件,webapp存放前端资源文件
项目目录结构
二、项目分析
使用了《阿里巴巴Java开发手册》中的项目架构,进行了应用分层的处理,同时也加入了一些额外的中间件,如消息服务JMS,AOP切面操作等
项目架构
1、Java目录分析
Java目录
- aspect
AOP切面,未完成
- controller
springmvc控制器模块,主要类型 1.视图控制器 2.资源控制器 3.异常处理控制器
- dto
data transport object 数据传输对象
Java email 服务
- exception
自定义异常 可抛出到异常处理控制器进行统一处理
- entity
实体类 和数据表一一对应
- image
图片文件传输工具,未完成
- jms
基于activemq的消息服务,结合email实现邮件发送
- mapper
mybatis数据映射接口
- service
服务层,调用mapper处理业务逻辑
- shiro
使用shiro安全框架进行权限认证
- util
工具类
- wx
微信移动端接口,未实现
2、resources目录分析
ssm框架资源配置文件
mapper
mybatis的xml映射文件,与接口中方法一一对应,实现dao层操作
spring: (在web.xml中配置以下xml实现加载)
- spring-config
spring容器应用上下文配置,通过<bean>以及spring标签配置spring中的组件
- spring-mvc
springmvc上下文配置,通过<bean>以及spring标签配置springmvc中的组件
jdbc.propertiesjdbc.properties
数据库配置文件
log4j.propertieslog4j.properties
slf4j的log4j日志配置文件
mail.propertiesmail.properties
mail邮件服务的配置文件
3、webapp前端目录
前端设计
css
- bootstrap
bootstrap库文件
- mycss
自定义css样式
images
图片
js
- bootstrap
bootstrap库文件
- jquery
jquery库文件
- layer
layer弹窗库文件
- myjs
自定义js文件(基本上一个html文件对应一个js文件)
view
- home-tap
tap选项卡,对应页面的右侧显示部分,通过切换实现内容变换
- popup
layer弹窗界面,实现如增删改查等表单的操作
WEB-INF
web.xml进行配置
三、一些使用到的知识点或者技巧
1、前后端的数据交互格式为JSON
2、使用@RestController代替@Controller,实现Restful的接口设计,用以传输JSON数据
3、使用@ControllerAdvice用以异常处理控制器,可以捕获包中抛出的异常,作为一个同一的异常处理机制
4、util中实现了检查类,能够通过import static的方法在controller和service导入静态方法,进行参数检查,抛出自定义的异常,从而被异常处理器捕获,能够使方法结构更加清晰
5、使用dto.ResponseResult对象统一返回结果,其包含状态码,响应信息,响应对象三个字段,能够应对所有的不论正确还是错误的返回结果
注意事项:使用了activemq,必须要启动activemq之后才能进行项目的部署,若不需使用activemq,可以将相关部分(jms包,spring-config配置中相关部分)删除,不然启动项目后会等待activemq的启动
注意事项:需配置jdbc.properties的相关数据库配置,生成数据库数据表以及数据的SQL已经通过Navicat导出了SQL语句,找到init.sql,复制然后执行即可创建一样的数据库。
注意事项:请检查pom.xml无出错
注意事项:需要在html中检查包的导入路径,因为部分包采用了在线URL,需要下载才能使用,以及我采用了绝对路径的方式导入如css js等文件,需要更改为自己的项目名(我的项目名为ssm)
四、项目源码(可运行)
项目中标注了大量的注解,其实是比较容易读的,基本都覆盖了,若出错则认真查看日志,找到相关内容修改即可
GitHub:kevinten10/SSM-lifecat
相应的version1项目:
文章:
GitHub: kevinten10/lifecatweb
相应的version3项目:
文章:
GitHub: kevinten10/springboot-lifecat