SSM 实战项目运行记录:基于 Java 的方咀租赁站

原创记录

项目概览

这次跑的是 GitHub 上的 wowpH/Lease,项目名叫“方咀租赁站”,是一个基于 Java 的租赁管理系统。技术栈比较典型:Spring、SpringMVC、MyBatis、JSP、LayUI、MySQL、Maven、Tomcat。

项目适合用来学习传统 SSM 项目的目录结构和运行方式,功能不复杂,但配套比较完整:有源码、有 pom.xml、有 SQL 脚本、有 README、有页面截图。相比很多只有说明文案的 SSM 仓库,这个项目至少可以真正拉下来跑。

仓库地址:

https://github.com/wowpH/Lease

本地环境

我本地使用的环境如下:

  • macOS
  • Java 17
  • Maven 3.9
  • MySQL 9.x
  • 项目内嵌 tomcat7-maven-plugin

原项目 README 推荐的是 JDK 1.8、MySQL 8.0.15、Tomcat 7。因为这是一个 2020 年左右的传统 JavaWeb 项目,所以如果用较新的 JDK 和 Maven,遇到依赖兼容问题很正常。

拉取源码

git clone https://github.com/wowpH/Lease.git
cd Lease

项目根目录里比较关键的文件是:

  • pom.xml
  • lease.sql
  • src/main/resources/jdbc.properties
  • src/main/webapp/WEB-INF/jsp
  • src/main/java/com/ph/lease

导入数据库

项目默认连接的是:

jdbc.url=jdbc:mysql://localhost:3306/db_lease?serverTimezone=GMT%2B8
jdbc.user=root
jdbc.password=123456

如果本机 MySQL 密码不是 123456,需要修改 src/main/resources/jdbc.properties。然后创建数据库并导入 SQL:

mysql -uroot -p -e "CREATE DATABASE IF NOT EXISTS db_lease DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -uroot -p db_lease < lease.sql

SQL 里默认管理员账号是:

账号:admin
密码:123456

启动时遇到的问题

直接运行:

mvn tomcat7:run

我遇到的第一个问题是 Maven 拉不到这个传递依赖:

org.vaadin.addons:dcharts-widget:jar:0.10.0

检查代码后发现业务代码没有使用 Vaadin/DCharts,它来自 activiti-explorer 的传递依赖。处理方式是在 pom.xmlactiviti-explorer 依赖里排除它:

<exclusion>
    <artifactId>dcharts-widget</artifactId>
    <groupId>org.vaadin.addons</groupId>
</exclusion>

排除后重新启动:

mvn tomcat7:run

控制台出现 Tomcat 启动、Spring 容器初始化、Controller 映射完成等日志,说明项目已经跑起来了。访问地址:

http://localhost:8080/

运行截图

登录页:

登录页

管理员首页:

管理员首页

订单管理:

订单管理

材料管理:

材料管理

客户管理:

客户管理

功能模块

后台主要有四个模块:

  • 订单管理:查看租赁/归还订单,支持按客户和时间筛选。
  • 材料管理:维护材料名称、型号、规格、单位、价格、库存、赔偿金等信息。
  • 客户管理:维护客户姓名、手机号、地址和登录密码。
  • 密码管理:管理员和客户都可以修改自己的密码。

项目页面使用 LayUI,整体是传统后台管理系统风格:左侧菜单,右侧内容区,表格列表加弹窗表单。

项目结构简析

后端分层比较清晰:

  • controller:处理页面跳转和接口请求。
  • service:业务逻辑层。
  • mapper:MyBatis Mapper 接口。
  • entity:实体类。
  • resources/mapper:MyBatis XML。
  • WEB-INF/jsp:JSP 页面。

这是非常典型的 SSM 教学项目结构,适合用来理解 SpringMVC 请求进入 Controller、Service 调用 Mapper、Mapper XML 执行 SQL、最后回到 JSP 或 JSON 响应的完整链路。

适合怎么用

这个项目适合三类用途:

  • 学 SSM 项目整合:Spring、SpringMVC、MyBatis、JSP、Maven、Tomcat 的组合比较完整。
  • 做课程设计或毕设参考:有登录、后台、表格、增删改查、数据库脚本。
  • 改造成其他管理系统:把租赁材料换成商品、设备、图书、仓库物资都比较容易。

不过它不适合直接当现代生产项目。原因也很明显:Spring 版本较老,JSP 技术栈偏传统,密码是明文存储,权限模型比较简单,部分依赖也已经过时。

源码下载

源码包已经整理成 ZIP,压缩包中保留项目源码、SQL、README 和原项目图片,排除了 .gittarget、本地运行截图等临时文件。数据库配置里的密码也已恢复为项目默认示例值。

总结

wowpH/Lease 是一个“能跑起来”的传统 SSM 项目。它不新潮,但配套完整,源码、SQL、页面、运行方式都比较清楚。对于想找一个 SSM 练手项目的人来说,它比很多只有 README、没有 SQL、没有完整源码的仓库靠谱。

如果只是学习 SSM,这个项目够用了;如果要继续完善,可以优先改这几处:

  • 密码改为加盐哈希存储。
  • 增加角色权限控制。
  • 补充数据校验和统一异常处理。
  • 升级 Spring、MyBatis、Tomcat 相关依赖。
  • 将 JSP 页面逐步替换成 Vue 或 React 前端。
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容