SSM蛋糕商城系统

yangyi a8c7eaf41b doc:readme 4 місяців тому
sql 3c13d9aba8 feat:初始化sql文件 4 місяців тому
src 3c13d9aba8 feat:初始化sql文件 4 місяців тому
.gitignore 58e3ca7281 # init:项目初始化依赖配置 6 місяців тому
README.md a8c7eaf41b doc:readme 4 місяців тому
doc.md 6a5963921d doc:功能需求 4 місяців тому
pom.xml 8def57101b feat:初步完成通过测试 4 місяців тому

README.md

SSM_template — 甜蜜时光蛋糕坊

基于 Spring + Spring MVC + MyBatis 的蛋糕商城系统。

技术栈

层 技术
前端 JSP + JSTL + Bootstrap 4.3.1 CDN + jQuery CDN + Font Awesome
控制层 Spring MVC 5.3.31
业务层 Spring 5.3.31 + @Transactional
持久层 MyBatis 3.5.6 + MyBatis-Spring 2.0.6
连接池 Druid 1.2.8
数据库 MySQL 8.0
构建 Maven (Java 8, war 打包)
容器 Tomcat 7+

快速开始

1. 数据库

执行 sql/init.sql 创建数据库 ssm 及 21 张表,并插入模拟数据。

默认管理员:admin / 123456 默认用户:zhangsan / 123456、lisi / 123456、wangwu / 123456

2. 配置

编辑 src/main/resources/jdbc.properties,修改数据库连接信息。

3. 运行

mvn compile                     # 编译
mvn clean package               # 打包 war
mvn tomcat7:run                 # 开发服务器 → http://localhost:8080/SSM_template
mvn test                        # 运行测试

项目结构

src/main/java/space/anyi/
├── controller/
│   ├── front/          # 用户端控制器 (10)
│   └── admin/          # 管理端控制器 (8)
├── entity/             # 实体类 (21) + dto/ (12) + vo/ (12)
├── mapper/             # MyBatis Mapper 接口 (21)
├── service/            # 业务接口 (19)
│   └── impl/           # 业务实现 (18)
├── interceptor/        # 登录拦截器 (LoginInterceptor, AdminLoginInterceptor)
├── util/               # 工具类 (MD5Util, OrderNoGenerator, Converter)
└── constant/           # 常量 (OrderStatus)

src/main/resources/
├── mapper/             # MyBatis XML 映射文件 (21)
├── spring-context.xml  # Spring 核心配置
├── spring-mvc.xml      # Spring MVC 配置
├── mybatis-config.xml  # MyBatis 配置
├── logback.xml         # 日志配置
└── jdbc.properties     # 数据库连接

src/main/webapp/WEB-INF/views/
├── index.jsp
├── common/             # header.jsp, footer.jsp
├── cake/               # 蛋糕列表、详情、定制
├── cart/               # 购物车
├── order/              # 订单结算、列表、详情
├── user/               # 登录、注册、个人资料、地址管理
├── favorite/           # 收藏
├── coupon/             # 优惠券
├── message/            # 留言
├── activity/           # 活动
└── admin/              # 后台管理 (16 个 JSP)

核心配置文件

文件 用途
spring-context.xml 数据源、MyBatis、事务、AOP
spring-mvc.xml 控制器扫描、拦截器、视图解析、文件上传
mybatis-config.xml 驼峰映射、SQL 日志、二级缓存关闭
logback.xml 按级别分离日志 (debug/info/error),滚动策略
web.xml DispatcherServlet、编码过滤器

权限控制

拦截器 Session Key 保护路径 排除
LoginInterceptor user /user/* /cart/* /order/* /favorite/* /coupon/* /user/login /user/register
AdminLoginInterceptor admin /admin/** /admin/login

测试

测试位于 src/test/java/space/anyi/,包含 6 个 Service 测试和 3 个 Mapper 测试。

  • 基类 BaseMapperTest 使用 spring-test.xml(独立配置,数据库 ssm_test)
  • @Transactional 自动回滚

注意事项

  • Java 8 编译目标,war 打包方式
  • Druid 数据源在 XML 中配置(非 Spring Boot 方式)
  • 文件上传最大 5MB(CommonsMultipartResolver)
  • PageHelper 5.3.3 分页插件已启用
  • MyBatis mapUnderscoreToCamelCase=true(数据库下划线 → Java 驼峰)
  • 图片存储于 ./upload 目录,路径由 jdbc.properties 中的 upload.path 配置