{"id":14982970,"url":"https://github.com/xenv/s-mall-ssm","last_synced_at":"2025-04-04T13:08:31.114Z","repository":{"id":30013253,"uuid":"122973797","full_name":"xenv/S-mall-ssm","owner":"xenv","description":"小小商城系统，JavaWEB项目，基于SSM，仿天猫页面，功能齐全，实现了自动处理关联查询的通用Mapper、抽象 BaseService 类、注解鉴权、参数注解校验等","archived":false,"fork":false,"pushed_at":"2022-12-16T10:41:14.000Z","size":2923,"stargazers_count":643,"open_issues_count":13,"forks_count":174,"subscribers_count":22,"default_branch":"master","last_synced_at":"2025-04-04T12:26:30.895Z","etag":null,"topics":["annotations","aop","java","javaweb","mybatis","mybatis-generator","spring","spring-mvc","ssm"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xenv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-02-26T13:28:31.000Z","updated_at":"2025-03-09T04:16:52.000Z","dependencies_parsed_at":"2023-01-14T16:15:20.601Z","dependency_job_id":null,"html_url":"https://github.com/xenv/S-mall-ssm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xenv%2FS-mall-ssm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xenv%2FS-mall-ssm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xenv%2FS-mall-ssm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xenv%2FS-mall-ssm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xenv","download_url":"https://codeload.github.com/xenv/S-mall-ssm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247182389,"owners_count":20897381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["annotations","aop","java","javaweb","mybatis","mybatis-generator","spring","spring-mvc","ssm"],"created_at":"2024-09-24T14:06:30.788Z","updated_at":"2025-04-04T13:08:31.084Z","avatar_url":"https://github.com/xenv.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 小小商城系统  - SSM版\n\n练手 JavaWEB 项目，本版本为SSM版。本项目实现了通用 Mapper，免写 SQL，全自动处理关联查询。通过合理配置 MyBatis Generator 和自定义插件，灵活隔离手写代码和自动生成代码。实现了 BaseService 类对 Service 层进行抽象。通过拦截器实现了方法级粒度的鉴权，通过AOP实现了参数校验。\n\n---------------------------\n\n**演示**：[https://small.ડ.com/][1]  \n可自行注册账号，或使用后台查看权限账号 demo 密码 demo （后台入口登陆后显示）  \n\n兄弟项目：  \n[SSH版（实现了SSM版95%功能）][3]  \n[Servlet版（实现了SSM版85%功能）][2]  \n\n----------------------------\n\n本项目的亮点：\n\n * 功能齐全，页面丰富，实现了小商城的大部分功能\n * 前端仿天猫2017页面，基于原生 CSS（前台）、Bootstrap（后台）、Jquery、Bootstrap Js 构建\n * 本项目为 Maven 项目，后端使用 Spring 4 + SpringMVC 4 + Mybatis 3.4 + aspectj 1.8\n * 实现了一个 **通用mapper**，免写 SQL，可进行单表和多表关联查询，自动插入一对多/多对一对象（注解配置关联对象，结合 MyBatis Generator ）\n * 实现了一个 **BaseService 类** ，集成了多条件的查询和增改删操作，普通 Service 只需写少量代码即可\n * 完全**隔离** MyBatis Generator 生成代码和额外手写代码，以支持可持续化部署，实现了**多个MyBatis Generator插件**，全部采用软删除\n * 通过拦截器和自定义注解实现了方法级粒度的**用户鉴权** ，不同用户组权限完全隔离\n * 通过 参数注解 进行方法级**数据校验**，无需额外配置校验类 （通过 AOP 切面实现）\n * 统一的错误处理\n  \n  \n讲解文章：  \n  * [小小商城项目概述 —— 需求分析、数据表设计、原型设计、多层结构设计、项目规划][4]\n  * [SSM开发 | 合理配置 mybatis-generator，隔离机器生成代码和额外增加代码][5]\n  * [SSM开发 | 开发自定义插件，使 mybatis-generator 支持软删除][6]\n  * [SSM开发 | 实现 Mybatis 的通用 Mapper，免写 SQL 自动处理关联查询 （类hibernate）（mybatis-generator+自定义插件+自定义注解+静态代理+泛型+反射）][7]\n  * [SSM开发 | 配合Mybatis，通过泛型实现 BaseService ，抽象增改删查方法][8]\n  * [SSM开发 | 配合自定义注解 和 SpringMVC拦截器，实现 方法级粒度 用户鉴权][9]\n  * [SSM开发 | 对 SpringMVC 传入参数 进行参数校验 （使用自定义AOP切面+自定义参数注解）][10]\n  \n  \n功能： \n\n - [x] 首页、分类页、搜索页、产品页\n - [x] 购物车页面、下单页、支付页及支付成功页\n - [x] 我的订单页、确认收货及成功页、评价页\n - [x] 登陆页、注册页\n - [x] 全部数据库的后台可视化管理\n - [x] 网站SEO设置、图片路径设置\n\n------------------\n \n 安装使用：\n \n  1. 若使用IDE打开，需按 Maven 文件安装依赖\n  2. 若在Tomcat中部署，Maven文件中已经配置好直接在线部署，使用 maven tomcat7:deploy 可直接在线部署 （需先配置好Tomcat）\n  3. 导入数据库small.sql，在 \\src\\main\\resources\\jdbc.properties 中配置数据库\n  4. 默认后台地址 /admin ，账户密码为 admin 123456 ，新建用户在前台注册，需要后台权限需要在数据库的User表的group_列中将该用户的用户组设置为 superAdmin\n  5. JDK \u003e= 1.8、数据库 Mysql\n  \n  *特别注意*：\n  1. 程序只能配置在根目录访问，如 localhost/，不能部署在子文件夹\n  2. small.sql 只有数据库结构和 admin 账户密码，没有其他数据。需要自行登录后，在后台手动添加。演示网站的所有数据均为我后台添加，无需手动插入数据库。\n\n\n  [1]: https://small.ડ.com\n  [2]: https://github.com/xenv/S-mall-servlet\n  [3]: https://github.com/xenv/S-mall-ssh\n  [4]: https://yuque.com/page/luan.ma/small-start\n  [5]: https://yuque.com/page/luan.ma/mybatis-generator-insulate\n  [6]: https://yuque.com/page/luan.ma/mybatis-generator-delete-flag\n  [7]: https://yuque.com/page/luan.ma/mybatis-general-mapper\n  [8]: https://yuque.com/page/luan.ma/ssm-BaseService\n  [9]: https://yuque.com/page/luan.ma/ssm-auth\n  [10]: https://yuque.com/page/luan.ma/ssm-aop-verification\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxenv%2Fs-mall-ssm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxenv%2Fs-mall-ssm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxenv%2Fs-mall-ssm/lists"}