开发环境与技术选型
本系统的开发采用了前后端分离的混合开发模式,具体环境与工具如下:
| 模块 |
技术/工具选型 |
| 后端开发 |
语言:Java 8; 框架:SSM (Spring+Spring MVC+MyBatis) |
| 服务器与数据库 |
服务器:Tomcat 7; 数据库:MySQL 5.7; 数据库工具:Navicat 11 |
| 前端与开发工具 |
小程序框架:uni-app; IDE:HBuilder X / Eclipse / IDEA |
| 项目管理 |
Maven 3.3.9 |
| 运行访问 |
后台路径:localhost:8080/项目名称/admin/dist/index.html |
核心技术简介
MySQL 5.7 数据库
在数据存储方面,我们选择了MySQL 5.7。相较于Oracle等大型数据库,MySQL以其安装包小、资源占用低、配置简单且性能稳定的特点,成为中小型应用项目的理想选择。它完全能够满足本系统在车位信息、用户订单、支付记录等方面的结构化数据存储与管理需求。关于数据库/中间件的更多选型与优化,可以参考社区相关专题。
Java与SSM框架
后端服务采用经典的Java语言与SSM框架组合进行构建。Java语言凭借其跨平台特性、丰富的生态体系以及稳定的性能,在企业级应用开发中占据重要地位。SSM框架整合了Spring的IoC/DI容器、Spring MVC的Web层以及MyBatis的数据持久层,提供了一个清晰、灵活的分层架构,极大地提升了开发效率与代码的可维护性。
微信小程序与uni-app
前端移动端采用微信小程序形式,使用uni-app框架进行开发。uni-app允许开发者使用Vue.js语法编写代码,并编译发布到多个平台(微信小程序、支付宝小程序等),实现了“一套代码,多端运行”。这充分利用了微信小程序的生态优势,用户无需下载安装,扫码即用,体验接近原生应用,非常适合停车场这类高频、便捷的服务场景。
SpringBoot框架
虽然项目采用了SSM架构,但其核心思想与SpringBoot倡导的“约定优于配置”一脉相承。SpringBoot通过自动配置和起步依赖,极大地简化了Spring应用的初始搭建和开发过程。理解SpringBoot的设计哲学,有助于更好地组织和优化基于Spring生态的项目。想深入学习现代Java后端开发,SpringBoot是必不可少的一环。
B/S架构与Tomcat服务器
系统整体采用B/S(浏览器/服务器)架构。管理员通过浏览器访问后台管理系统,而用户通过微信小程序(可视为特殊的“浏览器”)访问服务。这种架构的优势在于维护便捷,升级只需更新服务器端代码。我们选用Tomcat 7作为应用服务器,它是一个轻量级、开源免费的Servlet容器,非常适合承载本项目并发量适中的Java Web应用。
系统功能与界面展示
系统主要分为用户小程序端和管理员后台端,以下是核心功能界面截图。
1. 用户端微信小程序界面
用户通过微信小程序可完成停车场查询、车位预订、导航等一系列操作。
图1:小程序登录与主页
系统提供统一的登录入口,用户可选择角色(普通用户/管理员)登录。主页清晰展示核心功能入口。

图:系统登录界面,支持角色选择

图:小程序主页及公告信息展示页
图2:停车场与车位查询
用户可以浏览停车场列表,查看具体车位的编号、状态、费用等详细信息。


图:(左)停车场列表页;(右)具体车位信息详情页
图3:车位预定与地图导航
选定车位后,用户可进行预订并支付。系统集成地图功能,提供导航至停车场的便捷服务。


图:(左)车位预订与支付页面;(右)集成地图的导航功能
2. 管理员后台管理系统界面
管理员通过Web后台对系统进行全面管理,界面采用常见的表格与表单形式。
图4:后台管理主界面与车位管理
后台首页概览关键数据,车位信息管理支持对停车场及车位的增删改查。


图:(左)车位信息管理页面;(右)后台管理系统主页
图5:订单与用户管理
管理员可以审核用户提交的车位预订订单,并管理所有注册用户信息。

图:车位预定订单审核与管理页面
3. 系统架构图
下图清晰地展示了本智能停车场管理系统的整体架构,分为微信小程序前端和后台管理系统两大部分。

图:系统前后端架构示意图,展示了用户、小程序、服务器与管理员之间的交互关系
核心代码示例:用户登录与认证控制器
以下代码展示了后端处理用户登录、注册、Token认证等核心功能的Controller实现。它利用Spring MVC框架接收前端请求,并通过MyBatis Plus与数据库交互。
package com.controller;
import java.util.Arrays;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.PageUtils;
import com.utils.R;
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 用户登录
*/
@IgnoreAuth // 此注解表示该接口无需Token认证
@PostMapping(value = "/login")
public R login(String username, String password, HttpServletRequest request) {
// 根据用户名查询用户
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
// 验证用户名和密码
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
// 生成并返回Token
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 用户注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// 检查用户名是否已存在
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 获取当前登录用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
// 其他方法:退出登录、密码重置、用户信息增删改查等...
// ...
}
代码说明:该控制器提供了用户系统的核心API。@IgnoreAuth用于放行登录/注册等公开接口。登录成功后,通过Token服务生成JWT令牌返回给客户端,后续请求需携带该Token以进行身份鉴权。

总结
本项目通过结合微信小程序的便捷性与SSM(Spring+SpringMVC+MyBatis)后端框架的稳定性,实现了一个功能完整的智能停车场管理系统。系统涵盖了从用户车位查询、在线预订支付到后台集中化管理等全流程,体现了利用成熟前端 & 移动技术栈与后端技术进行综合开发的典型实践。其模块化的设计和清晰的代码结构,也为后续的功能扩展和维护打下了良好基础。