ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

mall 项目 Windows 环境搭建全指南:从零部署 mall-admin、mall-search 与 mall-portal

mall 项目 Windows 环境搭建全指南:从零部署 mall-admin、mall-search 与 mall-portal 后端电商认证鉴权搜索引擎【免费下载链接】mallmall项目是一套电商系统包括前台商城系统及后台管理系统基于Spring BootMyBatis实现采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。项目地址https://gitcode.com/gh_mirrors/ma/mall点击查看免费下载本文是 mall 电商项目在 Windows 环境下完整搭建开发环境的实操指南。它依托仓库内 document/reference/deploy-windows.md 的部署步骤结合当前仓库真实的配置文件与源码覆盖 IDE 与 Lombok 准备、MySQL、Redis、Elasticsearch、MongoDB、RabbitMQ、阿里云 OSS 等全部中间件的安装与配置并给出 mall-admin后台管理、mall-search商品搜索、mall-portal前台商城三个服务模块的启动方法。读完本文你可以在一台全新的 Windows 机器上从零搭建出可运行、可调试、可对接接口文档的 mall 本地开发环境。一、搭建前的全局认知mall 由哪些模块与中间件组成在动手安装任何软件之前先明确 mall 项目的模块划分与依赖关系可以让环境搭建有的放矢。从根 pom.xml 的modules声明可见本项目由 7 个 Maven 模块组成mall ├── mall-common -- 工具类及通用代码 ├── mall-mbg -- MyBatisGenerator 生成的数据库操作代码 ├── mall-security -- SpringSecurity 封装公用模块 ├── mall-admin -- 后台商城管理系统接口 ├── mall-search -- 基于 Elasticsearch 的商品搜索系统 ├── mall-portal -- 前台商城系统接口 └── mall-demo -- 框架搭建时的测试代码不同业务模块对中间件的依赖各不相同Windows 搭建时可以按需安装不必全部装齐中间件依赖它的模块在本仓库中的配置依据MySQL 5.7mall-admin / mall-search / mall-portal三个模块的application-dev.yml中均有jdbc:mysql://localhost:3306/mall数据源Redismall-admin / mall-portal两模块application-dev.yml的spring.data.redis.host: localhostElasticsearch Kibanamall-searchmall-search/src/main/resources/application-dev.yml 的spring.elasticsearch.uris: localhost:9200MongoDBmall-portalmall-portal/src/main/resources/application-dev.yml 的spring.data.mongodb配置RabbitMQmall-portal同文件的spring.rabbitmqvirtual-host 为/mall阿里云 OSSmall-adminmall-admin/src/main/resources/application.yml 的aliyun.oss配置段同时需要注意版本前提本仓库 master 分支基于 Spring Boot 3.5 JDK 17见 pom.xml 中的java.version与spring-boot-starter-parent版本而仓库内 Windows 部署文档给出的中间件版本示例如 Elasticsearch 6.2.2、RabbitMQ 3.7.14来自较早版本的实践。实际安装时Elasticsearch 的主版本应与 mall-search 模块引入的 Spring Data Elasticsearch 依赖兼容具体以你本地使用的分支如 README 中提到的基于 Spring Boot 2.7 JDK 8 的 dev-v2 分支为准。部署文档全文的流程与命令仍然有效版本号请按需替换。二、开发工具准备IDEA / Eclipse 与 Lombok 插件mall 的实体类、DTO 大量使用 Lombok 注解简化样板代码根 pom.xml 的依赖列表中也包含org.projectlombok:lombok因此无论使用哪种 IDE安装 Lombok 支持都是编译运行的硬性前提。使用 IDEA下载安装 IntelliJ IDEA社区版或旗舰版均可满足本项目的编译运行需求具体安装与使用可参考官方文档或主流教程启动 IDEA 后进入插件市场Settings → Plugins搜索插件仓库并安装插件lombok安装完成后重启 IDEA再以 Maven 项目方式打开仓库根目录的pom.xml等待依赖下载完毕即可。使用 Eclipse在 Eclipse 中通过File → Import → Maven → Existing Maven Projects导入项目选择仓库根目录以 Maven 项目形式导入导入后项目会出现src/main/java、src/main/resources等标准 Maven 目录结构安装 Lombok 插件从 Lombok 官方下载站点获取lombok.jar下载完成后双击该 jar使用 Java 程序方式打开运行在弹出的安装界面中按照提示选择eclipse.exe的安装路径执行插件安装安装完成后重启 Eclipse启动项目在包com.macro.mall下找到MallAdminApplication类右键其main方法选择Run As → Java Application。三、MySQL 5.7 安装与 mall 数据库初始化mall 的所有业务数据都存储在 MySQL 中mall-mbg模块下com.macro.mall.mapper与com.macro.mall.model中上百个 Mapper 接口和实体类即由数据库表结构生成而来因此数据库是第一个要装好的中间件。到 MySQL 官网下载 MySQL 5.7 系列的 Windows 安装包按安装向导提示完成安装建议记录好 root 账号密码后续配置要用初始化数据库将仓库内 document/sql/mall.sql 文件导入 MySQL。mall.sql 一次性包含商品、订单、会员、促销、内容、权限等全部业务表结构与初始化数据可用命令行mysql -uroot -p mall.sql导入也可用 Navicat 等客户端直接执行该脚本验证数据源配置mall 各模块的开发环境数据源位于各自的application-dev.yml以 mall-admin/src/main/resources/application-dev.yml 为例spring: datasource: url: jdbc:mysql://localhost:3306/mall?useUnicodetruecharacterEncodingutf-8serverTimezoneAsia/ShanghaiuseSSLfalse username: root password: root druid: initial-size: 5 #连接池初始化大小 min-idle: 10 #最小空闲连接数 max-active: 20 #最大连接数若本机 root 密码不是root需要同步修改password字段mall-search、mall-portal的application-dev.yml中数据源 URL 完全一致共用mall库。提示如果只启动mall-admin模块只需安装 MySQL 和 Redis 即可见 README.md 环境搭建章节无需安装 Elasticsearch、MongoDB、RabbitMQ。四、Redis 安装与启动Redis 在 mall 中承担缓存职责mall-admin 用它缓存后台用户信息mall-admin/src/main/resources/application.yml 中定义了ums:admin、ums:resourceList等 key 前缀过期时间 24 小时mall-portal 用它缓存验证码、订单号与会员信息。从 Redis 的 Windows 发行版仓库下载 Redis 的 Windows 版本压缩包Redis 官方并不直接提供 Windows 二进制需使用社区维护的 Windows 版本解压到指定目录按提示完成安装启动 Redis在解压目录执行redis-server.exe redis.windows.conf保持该窗口不关闭或将其注册为 Windows 服务服务默认监听 6379 端口验证配置一致性mall-admin/src/main/resources/application-dev.yml 中 Redis 连接为spring: data: redis: host: localhost # Redis服务器地址 database: 0 # Redis数据库索引默认为0 port: 6379 # Redis服务器连接端口 password: # Redis服务器连接密码默认为空 timeout: 300ms # 连接超时时间毫秒默认无密码即可连接如需设置密码要同时在配置文件中填写password。五、Elasticsearch、Kibana 与中文分词mall-search 依赖mall-search 模块基于 Elasticsearch 实现商品搜索其接口文档地址为http://localhost:8081/swagger-ui.html。部署文档给出的安装版本为Elasticsearch 6.2.2配套 Kibana 6.2.2这是较早期实践版本如前文所述实际安装时应选取与 mall-search 所依赖的 Spring Data Elasticsearch 版本兼容的主版本。安装 Elasticsearch 与 Kibana在 Elastic 官网的 Past Releases 页面下载 6.2.2 的.zip安装包文档中明确要求使用 6.2.2因为 Kibana、IK 插件均需与 ES 主版本严格一致解压到指定目录安装 Kibana同样下载 6.2.2 版本的.zip包解压后直接运行bin\kibana.bat验证 Kibana 是否安装成功浏览器访问http://localhost:5601启动 Elasticsearch运行elasticsearch-6.2.2\bin\elasticsearch.bat。安装中文分词插件 IKmall 的商品搜索需要中文分词能力需安装elasticsearch-analysis-ik中文分词插件。在elasticsearch-6.2.2\bin目录下执行以下命令以 6.2.2 版本为例elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.2/elasticsearch-analysis-ik-6.2.2.zip安装 head 插件可选不使用 Kibana 的情况下可以安装elasticsearch-head插件在浏览器中直观查看 ES 集群状态与索引数据。cluster.name 一致性说明部署文档特别强调如果你修改了 mall-search 中 es 的cluster-name: mall-es需要在elasticsearch-6.2.2\config\elasticsearch.yml中同步修改cluster.name: mall-es否则客户端无法连接到集群。这一点与连接方式有关较早期版本使用 Transport 客户端连接 EScluster.name 必须严格一致而当前仓库 mall-search/src/main/resources/application-dev.yml 使用的是 HTTP 连接方式spring: elasticsearch: uris: localhost:9200uris指向 REST 端口 9200。无论采用哪种方式都建议保持 ES 端配置与 mall-search 侧配置一致避免连接失败。mall-search 的服务端口在 mall-search/src/main/resources/application.yml 中定义为server.port: 8081。六、MongoDB 与客户端工具mall-portal 依赖mall-portal 模块使用 MongoDB 存储会员浏览历史、商品收藏、品牌关注等非关系型数据com.macro.mall.portal.repository包下的MemberReadHistoryRepository、MemberProductCollectionRepository、MemberBrandAttentionRepository即对应文档型存储。安装 MongoDB下载 MongoDB 3.x 的 Windows MSI 安装包按向导选择安装路径部署文档建议c:\mongodb\在安装路径下创建data\db和data\log两个文件夹分别用于存放数据文件与日志服务端运行程序为mongodb\bin\mongod.exe客户端运行程序为mongodb\bin\mongo.exe创建配置文件mongodb\mongod.cfgsystemLog: destination: file path: c:\mongodb\data\log\mongod.log storage: dbPath: c:\mongodb\data\db将 MongoDB 注册为 Windows 服务运行命令需要用管理员权限C:\mongodb\bin\mongod.exe --config C:\mongodb\mongod.cfg --install服务日常管理命令net start MongoDB # 启动服务 net stop MongoDB # 关闭服务 C:\mongodb\bin\mongod.exe --remove # 移除服务安装 Robo3T 客户端下载 Robo3T原 Robomongo1.2.1 的 Windows 压缩包解压到指定目录打开robo3t.exe新建连接并连接到localhost:27017即可可视化操作 MongoDB。配置验证mall-portal 的 MongoDB 连接配置位于 mall-portal/src/main/resources/application-dev.ymlspring: data: mongodb: host: localhost port: 27017 database: mall-port七、RabbitMQ 安装与消息队列配置mall-portal 依赖mall-portal 使用 RabbitMQ 实现订单超时自动取消等异步场景com.macro.mall.portal.component包下的OrderTimeOutCancelTask、CancelOrderSender与CancelOrderReceiver构成定时扫描超时订单 → 发送取消消息 → 消费并取消订单的完整闭环消息路由规则定义在domain/QueueEnum.java交换机与队列声明在config/RabbitMqConfig.java。安装 Erlang 与 RabbitMQRabbitMQ 依赖 Erlang 运行环境两者版本需匹配安装 Erlang从 Erlang 官网下载otp_win64_21.3.exe并安装安装 RabbitMQ下载rabbitmq-server-3.7.14.exe按提示完成安装进入 RabbitMQ 安装目录的 sbin 子目录典型路径为D:\RabbitMQ Server\rabbitmq_server-3.7.14\sbin在资源管理器地址栏输入cmd回车打开命令行启用 Web 管理插件rabbitmq-plugins enable rabbitmq_management访问http://127.0.0.1:15672/验证是否安装成功使用默认账号guest/guest登录。创建 mall 用户、虚拟主机并授权mall-portal 的连接配置mall-portal/src/main/resources/application-dev.yml要求 RabbitMQ 端必须存在用户mall密码mall以及虚拟主机/mallspring: rabbitmq: host: localhost port: 5672 virtual-host: /mall username: mall password: mall因此在 RabbitMQ 管理界面中依次执行创建用户并设置角色新建用户mall密码mall角色设置为管理员administrator创建 Virtual Host新建虚拟主机/mall授权给mall用户配置对/mall虚拟主机的访问、配置、写、读权限。安装延迟消息插件可选如需支持延迟消息延迟消息交换机可额外安装rabbitmq_delayed_message_exchange插件在 RabbitMQ 社区插件页面下载rabbitmq_delayed_message_exchange插件文件将插件文件复制到插件目录D:\RabbitMQ Server\rabbitmq_server-3.7.14\plugins在 sbin 目录下运行如下命令启用插件rabbitmq-plugins enable rabbitmq_delayed_message_exchange八、阿里云 OSS 配置文件上传mall-admin 的文件上传功能采用阿里云 OSS 对象存储。部署文档说明本项目文件上传采用 OSS需要自行注册 OSS 账号并配置。修改 OSS 配置将 mall-admin/src/main/resources/application.yml 中所有以aliyun.oss.开头的配置项改为你自己的 OSS 配置。当前仓库的完整配置段及含义如下aliyun: oss: endpoint: oss-cn-shenzhen.aliyuncs.com # oss对外服务的访问域名 accessKeyId: test # 访问身份验证中用到用户标识 accessKeySecret: test # 用户用于加密签名字符串和oss用来验证签名字符串的密钥 bucketName: macro-oss # oss的存储空间 policy: expire: 300 # 签名有效期(S) maxSize: 10 # 上传文件大小(M) callback: http://localhost:8080/aliyun/oss/callback # 文件上传成功后的回调地址 dir: prefix: mall/images/ # 上传文件夹路径前缀逐项替换为你的真实值endpoint换成自己 OSS Bucket 所在区域的访问域名accessKeyId/accessKeySecret换成阿里云 AccessKeybucketName换成自己的存储空间名称。仓库默认的test/macro-oss均为占位示例不替换会导致上传失败。配置跨域CORS与直传方式OSS 上传文件需要配置跨域资源共享CORS规则在阿里云 OSS 控制台的 Bucket 设置中为你的存储空间添加允许的来源、方法PUT、POST 等与 Header 规则否则浏览器直传请求会被拦截mall 的上传方式采用服务端签名后直传的形式前端先从OssController的/aliyun/oss/policy接口获取签名策略对应OssPolicyResultDTO再携带签名直接上传文件到 OSS服务端通过回调接口/aliyun/oss/callback对应OssCallbackResult确认上传结果。签名生成逻辑位于com.macro.mall.service.impl.OssServiceImpl。九、启动三个业务模块所有中间件就绪后即可在 IDE 中逐个启动 mall 的三个业务模块。三个模块均默认激活devProfile见各模块application.yml中spring.profiles.active: dev因此会读取各自的application-dev.yml。启动 mall-admin后台管理系统启动方式直接运行com.macro.mall.MallAdminApplication的main方法对应文件 MallAdminApplication.java接口文档地址http://localhost:8080/swagger-ui.html端口为 Spring Boot 默认的 8080Swagger UI 路径由springdoc.swagger-ui.path配置见 application.yml。启动 mall-search商品搜索系统启动方式直接运行com.macro.mall.search.MallSearchApplication的main方法对应文件 MallSearchApplication.java接口文档地址http://localhost:8081/swagger-ui.html端口 8081 配置于 mall-search/src/main/resources/application.yml使用前必须先调用接口导入数据调用http://localhost:8081/esProduct/importAll。该接口在 EsProductController.java 中定义为 POST 请求内部调用esProductService.importAll()将 MySQL 中的商品数据批量同步到 Elasticsearch 索引中如出现无法启动的问题可以先删除 Elasticsearch 中已存在的索引数据再启动历史索引数据可能与当前版本不兼容导致启动报错。启动 mall-portal前台商城系统启动方式直接运行com.macro.mall.portal.MallPortalApplication的main方法对应文件 MallPortalApplication.java接口文档地址http://localhost:8085/swagger-ui.html端口 8085 配置于 mall-portal/src/main/resources/application-dev.yml。十、常见问题与排错结合部署文档提示与仓库配置Windows 环境搭建中最常遇到的问题及排查方向如下现象可能原因排查 / 解决mall-admin 启动报数据库连接错误MySQL 未启动或账号密码与application-dev.yml不一致确认 MySQL 服务已启动核对spring.datasource中username/password登录后验证码 / 缓存相关功能异常Redis 未启动确认redis-server.exe redis.windows.conf窗口仍在运行端口 6379mall-search 无法启动Elasticsearch 未启动或版本与 Spring Data ES 不兼容或历史索引残留确认elasticsearch.bat已运行、9200 端口可访问尝试删除 ES 中已有索引后再启动中文搜索无结果IK 分词插件未安装确认已执行elasticsearch-plugin install安装 IK 插件mall-portal 订单 / 消息相关功能异常RabbitMQ 用户或虚拟主机未正确创建确认已创建mall用户、/mall虚拟主机并完成授权见第七章文件上传失败OSS 配置未替换 / CORS 未配置将aliyun.oss.*全部替换为真实配置在 OSS 控制台配置 CORS 规则IDE 中实体类大量报错、getter/setter 找不到Lombok 插件未安装或未生效在 IDEA / Eclipse 中正确安装 Lombok 插件并重启 IDE结语至此从 IDE 准备、Lombok 插件到 MySQL、Redis、Elasticsearch、MongoDB、RabbitMQ 五大中间件再到 OSS 文件存储与三个业务模块的启动一条完整的 Windows 本地开发链路已经打通。mall 各模块的配置全部集中在各自的application.yml与application-dev.yml中任何中间件连接问题都可以回到这几个文件逐一核对。后续如需进行 Docker 化部署可参考仓库内 document/docker 目录下的 Compose 编排文件与 document/sh 目录下的部署脚本实现从本地开发到容器化部署的无缝迁移。赞分享后端电商认证鉴权搜索引擎【免费下载链接】mallmall项目是一套电商系统包括前台商城系统及后台管理系统基于Spring BootMyBatis实现采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。项目地址https://gitcode.com/gh_mirrors/ma/mall点击查看免费下载相关推荐mall-swarm微服务项目Windows环境部署指南mall swarm微服务项目Windows环境部署指南 前言 mall swarm是一个基于Spring Cloud微服务架构的电商系统解决方案本文将详细介后端电商微服务API网关mall-admin-web 项目教程mall admin web 项目教程 项目介绍 mall admin web 是一个电商后台管理系统的前端项目基于 Vue 和 Element UI 实现。前端电商企业应用从零搭建电商会员体系mall-admin-web等级与积分实战指南从零搭建电商会员体系mall admin web等级与积分实战指南 你是否还在为电商平台的会员管理烦恼会员等级混乱、积分规则复杂、用户留存率低本文将带你一前端电商企业应用上一篇3分钟快速上手如何在Windows上完美使用Steam Deck控制器下一篇PyInstaller 测试体系完全指南从 functional/unit 双目录到 CI 全平台验证创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表