(19)Spring Boot电商项目
文章平均质量分 84
Spring Boot电商项目;
小懒羊爱吃草
小枯林
展开
-
Spring Boot电商项目67:项目总结;
说明:(1)该SpringBoot电商项目的总结;自己感觉,本项目的难点:(1)根据项目需求,确定技术选型;(2)根据项目需求,项目模块划分、架构设计、接口文档的编写;(3)根据项目需求,数据库的设计;(4)对于一个需求,能应对正确的情况还不够;要考虑到所有“不正常”的情况;即,默认情况下【用户的输入】是不可信任的;(5)编程要规范;(6)为了实现同一个业务,可能有多种实现策略;而,能够尽量选择比较不错的那个方案,是自己需要逐渐提升和积累的能力;(7)对于一些常见..原创 2022-04-11 04:19:00 · 1438 阅读 · 10 评论 -
附加:部署项目时候,用到的Linux命令;(scp:上传文件;lsof:查看当前系统文件;java -jar:启动jar包;nohup:后台运行;)
说明:(1)本篇博客主要阐述以下的内容:在【Spring Boot电商项目66:上线部署四:把项目部署到服务器;】中,我们在部署项目的时候,使用到了很多命令;这儿对其中使用到的命令,作进一步的详细介绍和分析;(2)声明:本篇博客的内容,没必要全部记忆,以能解决目前的疑问为主要目的;(3)本篇博客参考的文章有: ●【Linux scp命令】; ●【3. lsof 一切皆文件】; ●这儿只是罗列一下,并没有详细阐述;一...转载 2022-04-11 02:24:05 · 757 阅读 · 1 评论 -
附加:Spring Boot项目:多个配置文件介绍;启动项目时候,怎么选择指定配置文件;
说明:(1)本篇博客主要解决一下这个疑问;SpringBoot有多个配置文件的时候,在实际启动的时候,选择哪个配置文件?: ●比如这儿,application.properties是我们在自己电脑上开发nohup java -jar -Dserver.port=8083 -Dspring.profiles.active=prod /root/mall-0.0.1-SNAPSHOT.jar > /root/null 2>&1 &这...转载 2022-04-10 11:47:53 · 5948 阅读 · 0 评论 -
附加:项目打成jar || war包;(PS:本篇博客,内容比较混乱,并没有给出自认为清晰、明确、有条理的解答;所以,不建议看;)
说明:(1)本篇博客主要解决一下几个疑问;jar和war包的区别;非web项目,只能打成jar包?web项目只能打成war包?maven的package命令,默认打成jar包;SpringBoot项目,为什么要打成jar包?...转载 2022-04-09 20:45:10 · 776 阅读 · 0 评论 -
附加:打包方式;(目前为止,遇到过的所有打包案例; 包括【eclipse || IDEA】、【非web项目 || web项目】、【使用maven || 没有使用Maven】)
说明:(1)打包部署;Spring Boot多个配置文件;Linux命令;1.第一次介绍打包:初始Servlet+JSP项目,打成war包;在【Servlet与JSP进阶十:Web应用程序打包与发布(war包)】中,作了介绍,如有需要可以去参考; ●这儿是使用Eclipse,把一个【初始Servlet+JSP】的项目,打成war包; ●打好war包后,可以把war包复制到Tomcat的webapps目录下;然后,Tomcat启动后,我们这...原创 2022-04-08 23:32:55 · 843 阅读 · 0 评论 -
Spring Boot电商项目66:上线部署四:把项目部署到服务器;
说明:(1)本篇博客的主要内容是把项目部署到服务器上;(2)本篇博客中的重点是: ●程序打包;这儿是使用maven提供的命令来打包;然后,这儿是打成了jar包; ●启动项目;(3)声明:本篇博客中遇到的诸如,打包(包括打包方式,jar包还是war包等)、多配置文件的选取、项目的启动等内容;是有必要比较全面、深入的了解一下的;为此,自己后续的几篇博客对此进行了说明;目录1.程序打包:借助maven,把项目打成jar包;2.把程序打成的...原创 2022-04-08 17:59:43 · 761 阅读 · 7 评论 -
Spring Boot电商项目65:上线部署三:服务器环境配置;(数据库;配置安全组,放开端口;查看和确认jdk版本;redis;)
说明:(1)服务器要想部署我们的项目,我们需要配置一些东西;一:Java环境镜像使用手册;在线文档:https://oneinstack.com/docs/lnmtstack-image-guide/;这在线文档,内容还是比较丰富的;如果需要,可以随时参考;二:配置;1.配置MySQL;(1)修改root账户密码;……………………………………………………(2)创建数据库;…………………………………………...原创 2022-04-08 14:38:43 · 1515 阅读 · 0 评论 -
Spring Boot电商项目64:上线部署二:阿里云服务器介绍与选购;
说明:(1)原创 2022-04-08 11:30:22 · 1047 阅读 · 0 评论 -
Spring Boot电商项目63:上线部署一:项目的修改与调整;(这篇博客,后面要调整……)
说明:(1)原创 2022-04-07 22:47:38 · 1621 阅读 · 3 评论 -
Spring Boot电商项目62:订单模块十一:订单模块全流程演示和总结;
说明:至此,订单模块都开发完了,我们需要做一次全流程测试;目录1.订单模块的流程;2.【订单模块】全流程测试;(PS:下面的测试过程,可以不看)3.【订单模块】总结;(没什么好重复啰嗦的~~~)1.订单模块的流程;2.【订单模块】全流程测试;(PS:下面的测试过程,可以不看)(1)首先,登录一个用户;(2)可以,向购物车中添加一点商品;(3)然后,就可以去下单,生成订单了;(4)然后,先测试取消订单;(5)然后,测试扫码支...原创 2022-04-07 02:06:51 · 2883 阅读 · 0 评论 -
Spring Boot电商项目61:订单模块十:【前后台通用:订单完结】接口;
说明:(1)本篇博客的主要内容是开发【前后台通用:订单完结】接口;原创 2022-04-07 00:45:04 · 1096 阅读 · 0 评论 -
Spring Boot电商项目60:订单模块九:【后台:订单发货】接口;
说明:(1)本篇博客的主要内容是开发【后台:订单发货】接口;(2)本篇博客的内容比较简单;唯一需要注意的是:订单的状态,以及,订单状态流转的说明;目录一:【后台:订单发货】接口说明;1.【后台:订单发货】接口,接口文档;2.订单状态说明;3.【后台:订单发货】接口,在界面上的表现;二:正式开发;1.在OrderAdminController中,创建处理【后台:订单发货】接口的方法:delivered()方法;2.在OrderServiceImpl中,创建发货的逻辑.原创 2022-04-06 02:33:55 · 1550 阅读 · 0 评论 -
Spring Boot电商项目59:订单模块八:【后台:订单列表】接口;
说明:(1)本篇博客的主要内容是开发【后台:订单列表】接口;(2)本篇博客没什么难点;只需要注意:【前台:订单列表】接口是查询当前登录用户的订单数据;【后台:订单列表】接口是查询所有用户的订单数据;目录一:【后台:订单列表】接口说明;1.【后台:订单列表】接口,接口文档;2.【后台:订单列表】接口,在接口上的表现;二:正式开发;1.创建OrderAdminController,并在其中创建处理【后台:订单列表】接口的方法:listForAdmin()方法;2.在Or..原创 2022-04-06 00:35:46 · 1976 阅读 · 0 评论 -
Spring Boot电商项目58:订单模块七:【前台:支付订单】接口;(声明:仅仅演示了支付的逻辑,并没有实际调用微信支付宝等支付接口;)
说明:(1)本篇博客的主要内容是开发【前台:支付订单】接口;(2)本篇博客需要注意的点:本篇博客仅仅演示了支付的逻辑,在其中并没有调用支付宝微信等支付接口;目录一:【前台:支付订单】接口说明;1.支付接口,逻辑说明;2.【前台:支付订单】接口,接口文档;二:正式开发;1.在OrderController中,创建处理【前台:支付订单】接口的方法:pay();2.在OrderServiceImpl中,创建支付的逻辑方法:pay()方法;3.在OrderService..原创 2022-04-06 00:27:07 · 1153 阅读 · 0 评论 -
Spring Boot电商项目57:订单模块六:【前台:生成支付二维码】接口;(支付url的拼凑;利用zxing生成二维码;二维码图片的存储;真实地址与可访问地址的转换;)
说明:(1)一:【前台:生成支付二维码】接口介绍;1.【前台:生成支付二维码】接口,接口文档; ●这个接口,其实就是根据订单号生成支付二维码; ● 这个接口的请求方式,应该是Get,这儿写错了;其实可以理解,因为这个接口主要目的是,从服务器获取二维码;2.【前台:生成支付二维码】接口,在界面上的表现; ●点击【去支付】按钮,就对应了【生成支付二维码】接口和后面将要介绍的【前台:支付订单】接口...原创 2022-04-05 00:05:32 · 1254 阅读 · 0 评论 -
Spring Boot电商项目56:订单模块五:【前台:取消订单】接口;
说明:(1)本篇博客主要内容:开发【前台:取消订单】接口;(2)这个接口比较简单,只是别忘了,我们在实际取消前,需要订单检查与权限校验;目录一:【前台:取消订单】接口说明;1.【前台:取消订单】接口,接口文档;2.【前台:取消订单】接口,在界面上的表现;二:正式开发;1.在OrderController中,编写处理【前台:取消订单】接口的方法:cancel()方法;2.在OrderServiceImpl中,编写根据订单号取消订单的业务方法:cancel()方法;...原创 2022-04-03 01:09:32 · 1244 阅读 · 3 评论 -
Spring Boot电商项目55:订单模块四:【前台:订单列表】接口;(本篇博客只有一个点:在创建PageInfo对象时候,不使用Mybatis直接查询出来的List,也是可以的;)
说明:(1)本篇博客主要内容:开发【前台:订单列表】接口;(2)本篇博客一个并没有深入研究的疑问,这儿只是做了简单的尝试: ●我们在实例化PageInfo的时候,一定要通过Mybatis直接查询出来的List,去实例化吗?: ●但是,在这儿,自己经过实测:发现也是可以的; ●所以,根据上面的测试发现,我们在实例化PageInfo的时候,但就从使用角度来说,还是比较简单的; ●但是,就自己来说...原创 2022-04-03 00:07:10 · 1309 阅读 · 1 评论 -
Spring Boot电商项目54:订单模块三:【前台:订单详情】接口;
说明:(1)本篇博客的内容:开发【前台:订单详情】接口;(2)本篇博客的整体逻辑比较简单;需要注意的地方有两点: ●要做好权限校验; ●需要根据接口对返回数据的格式要求,去组织数据;目录一:【前台:订单详情】接口介绍;1.【前台:订单详情】接口,接口文档;2.【前台:订单详情】接口,在界面上的表现;二:正式开发;1.在OrderController中,创建处理【前台:订单详情】接口请求的方法:detail()方法;2.在...原创 2022-04-02 21:37:10 · 1855 阅读 · 1 评论 -
附加:枚举类;(本篇博客,没什么新的内容;只是,这儿用到了遍历枚举中枚举项的方法;)
说明:(1)为什么写本篇博客?:在【Spring Boot电商项目53:订单模块二:【前台:创建订单】接口;(这个接口比较复杂,内容较多)】,又一次使用到了枚举类;而且,这个时候枚举类是用来【定义“常量”信息】的;;;;顿时发现,枚举类可以使用的场景还是比较多的,为此写本篇博客,暂时性总结一下;(1)可以先看下【Spring Boot电商项目13:用户模块二:枚举类;(和【枚举数据类型】相比,【枚举类】可以管理一些复杂数据)】;这篇博客,总结了以前遇到过的枚举类的所有内容;(2)然后,.原创 2022-04-01 01:35:54 · 348 阅读 · 0 评论 -
附加:我们在更新数据库的时候,应该采用的做法是:使用pojo去更新数据库;
说明:(1)比如,我们在更新数据库的时候,应该采用的做法是:【先查旧数据】→【在旧数据的基础上修改】→【然后,去更新数据库】;(2)这是一个自己可能并不太认可的做法(因为比较麻烦),但在实际开发中,就得按照策略做;其实,(目前自己觉得)这样做的目的是,我们在更新数据库的时候,传过去的参数最好不要是几个单独分散的数,而是一个pojo;能懂哈;(3)声明:本篇博客没什么重点内容;比如:(1)【Spring Boot电商项目53:订单模块二:【前台:创建订单】接口;(这个接口比较复杂...原创 2022-04-01 00:24:09 · 1229 阅读 · 0 评论 -
附加:内部接口;(主要是,可以通过【外部类.内部接口.内部接口中定义的属性】的方式,获取到内部接口中定义变量;)(本篇博客介绍的内容,是一个通用的、可长期积累的开发技巧;)
说明:(1)本篇博客主要内容:内部接口;然后,本篇博客介绍的内容,是一个可以长期积累的开发技巧;以后,可能会时不时的用到这个技巧;目录一:为什么写篇博客?1.先看几个前面遇到的案例;2.本篇博客的两个疑问;(核心!)二:关于内部类的内容,可以参考的几篇博客;三:解答本篇博客疑问;(核心!)1.什么是内部接口;2.为什么,我们定义内部接口,并在内部接口中写几个变量后;可以通过【外部类.内部接口.内部接口中定义的属性】的方式,获取到内部接口中定义变量;一:为什么..原创 2022-03-30 01:28:31 · 668 阅读 · 0 评论 -
附加:Spring Boot项目,手动控制事务;(包括:总结了到目前为止,事务的所有内容;)
说明:(1)为什么写本篇博客?:在【Spring Boot电商项目53:订单模块二:【前台:创建订单】接口;】中,我们需要在SpringBoot项目中,去手动控制事务;为此,我们从头总结了事务的内容;(2)声明: ●本篇博客可能存在理解不准确,甚至是理解错误的地方;但目前,其能够帮助自己勉强形成自洽; ●本篇博客的内容,其实挺简单的;目录一:有关MySQL、JDBC、Apache Commons DbUtils,Mybatis、Spri...原创 2022-03-29 09:32:41 · 3620 阅读 · 0 评论 -
Spring Boot电商项目53:订单模块二:【前台:创建订单】接口;(这个接口比较复杂,内容较多)
说明:(1)一:【前提:创建订单】:分析;1.【前台:创建订单】在整个【订单模块】中的位置;……………………………………………………2.【前台:创建订单】说明;(1.1)首先,【前台:创建订单】接口:入参说明;(1.2)所以,用户id数据、购物车中的商品数据,都需要我们自己去获取;(2)我们要判断,【当前用户的、购物车中已经被勾选的、将要被我们下单的,商品】是否存在,如果存在再看其是否还是上架状态;(3)还要判断,【当前用户的、购物车中已经被勾选的、将..原创 2022-04-01 00:03:19 · 6901 阅读 · 7 评论 -
Spring Boot电商项目52:订单模块一:订单模块介绍;(模块介绍;效果演示;数据库设计;9个接口介绍;)
说明:(1)一:【订单模块】模块介绍;(1)【订单模块】在前台和后台中,均有;(2)【订单模块】在前台中的内容;(3)【订单模块】在后台中的内容;...原创 2022-03-25 18:16:16 · 11603 阅读 · 0 评论 -
Spring Boot电商项目51:购物车模块九:购物车模块总结;
只说一点:出于系统安全的考虑,遇到需要某种权限才能够操作的时候,一定要做判断,判断OK了,再去进行; ●从程序中查询用户,可以有效防止横向越权和纵向越权; ●在,删除或者更新购物车的时候,一定要做判断;判断OK了,再根据我们查出来的,去更新;因为,我们默认前端传过来的数据,都是不可信的。…………………………………………………… ●还是那句话,自己在开发任何模块的时候,安全性是第一的;(但也要注意把握好一个度)...原创 2022-03-22 19:22:06 · 4396 阅读 · 0 评论 -
Spring Boot电商项目50:购物车模块八:【全选/全不选购物车的商品】接口;
说明:(1)本篇博客主要内容是开发【全选/全不选购物车的商品】接口;其实,这儿选中与否,就是更新购物车中该商品的selected字段的值;(2)本篇博客内容,比较简单;只是,复用了开发【选中/不选中购物车的某个商品】接口时的Dao层;目录一:【全选/全不选购物车的商品】接口说明;1.【全选/全不选购物车的商品】接口文档;2.【全选/全不选购物车的商品】接口,在界面上的表现;二:正式开发;1.在CartController中,创建全选/全不选购物车的商品的方法:sele...原创 2022-03-22 19:03:52 · 784 阅读 · 0 评论 -
Spring Boot电商项目49:购物车模块七:【选中/不选中购物车的某个商品】接口;
说明:(1)一:【选中/不选中购物车的某个商品】接口说明;1.【选中/不选中购物车的某个商品】接口文档;原创 2022-03-22 18:32:26 · 1358 阅读 · 0 评论 -
Spring Boot电商项目48:购物车模块六:【删除购物车的某个商品】接口;
说明:(1)一:【 删除购物车的某个商品】接口说明;1.【删除购物车的某个商品】接口文档;2.【删除购物车的某个商品】接口,在界面上的表现;待写,项目上线后,回来补……二:正式开发;1.在CartController中,创建删除购物车的某个商品的方法:=delete()方法; /** * 购物车模块:更新购物车某个商品的数量 * @param productId * @param count * @...原创 2022-03-19 17:59:05 · 1778 阅读 · 0 评论 -
Spring Boot电商项目47:购物车模块五:【更新购物车某个商品的数量】接口;
说明:(1)一:【更新购物车某个商品的数量】接口说明;1.【更新购物车某个商品的数量】接口文档;2.【更新购物车某个商品的数量】接口,在界面上的表现;待写,项目上线后,回来补……二:正式开发;1.在CartController中,创建更新购物车某个商品的数量的方法:update()方法; /** * 购物车模块:更新购物车某个商品的数量 * @param productId * @param count *.原创 2022-03-19 17:56:54 · 1367 阅读 · 0 评论 -
Spring Boot电商项目46:购物车模块四:【添加商品到购物车】接口;(如果:接口要求返回JSON格式,而接口没有做相应的设置,是会报404错误的)
说明:(1)本篇博客内容:开发【添加商品到购物车】接口;(2)本篇博客需要注意的点: ●如果接口返回的数据格式不符合接口的要求(接口要求返回JSON格式,而接口没有做相应的设置),也是会报404错误的; ●一些复杂的、可以单独拉出来的逻辑,可以单独写一个方法;(以防止单个方法规模过于庞大)目录一:【添加商品到购物车】接口;1.【添加商品到购物车】接口文档;2.【添加商品到购物车】接口,在界面上的表现;二:正式开发;1.在C...原创 2022-03-18 19:13:08 · 2250 阅读 · 1 评论 -
Spring Boot电商项目45:购物车模块三:【购物车列表】接口;(遇到了【mybatis多表关联查询时,一种图快的、不建议的方式】;)
说明:(1)原创 2022-03-18 18:43:48 · 2283 阅读 · 0 评论 -
Spring Boot电商项目44:购物车模块二:统一校验当前是否有用户登录(没有区分是普通用户还是管理员用户);
说明:(1)本篇博客必要性说明: ●我们知道,项目中有的接口(其实就是后台系统的那些接口),是需要管理员登录时,才能够访问的;所以在这些接口正式执行前,我们需要先检查当前是否有管理员用户的登录; 而,为了提高效率,在【Spring Boot电商项目27:商品分类模块六:统一校验管理员身份;(选用【J2EE中的过滤器】来实现需求;重难点是【如何在Spring Boot项目中,使用过滤器】;)】中,我们使用过滤器来统一校验管理员身份,以提高开发效率、提...原创 2022-03-14 15:28:49 · 3760 阅读 · 0 评论 -
Spring Boot电商项目43:购物车模块一:购物车模块介绍;(模块介绍;效果演示;6个接口介绍;业务流程;)
说明:(1)本篇博客的目的:了解【购物车模块】的开发内容;熟悉【购物车分类模块】的6个接口;(2)声明:【购物车模块】只在前台中有应用;声明:对于电商项目来说,【购物车模块】并不是必须的;比如拼多多就没有购物车模块;但大多数电商项目,其都还是有【购物车模块】的;一:【购物车模块】模块介绍、功能演示;1.【购物车模块】模块介绍;说明:(1)加入商品:把商品加入到购物车;(2)列表显示:显示购物车列表;(3)数量更改:比如同一个商品,我们想买两个,那么就可以.原创 2022-03-12 12:50:49 · 11247 阅读 · 0 评论 -
Spring Boot电商项目42:商品模块八:前台的【商品列表】接口;(这篇博客比较重要;包括:【构建Query查询对象】、【明确限制排序条件】等;)
说明:(1)一:前台的【商品列表】接口说明;1.前台的【商品列表】接口文档;2.前台的【商品列表】接口,在界面上的表现;原创 2022-03-11 14:02:30 · 4840 阅读 · 8 评论 -
Spring Boot电商项目41:商品模块七:【商品详情】接口;(一个开发习惯:Service层的方法,其注释最好具有一般性,不要太有具体业务的色彩)
说明:(1)本篇博客内容:开发【商品详情】接口;(2)一个开发习惯:Service层的方法,其注释:最好不要带有太浓的具体业务指向,而应代用一般化的业务指向;比如:PS:该项目,至此前面的Service中,很多注释自己写的都太带有有具体业务的色彩了;;;就不改了,以后注意;目录一:【商品详情】接口介绍;1.【商品详情】接口文档;2.【商品详情】接口,在界面上的表现;二:正式开发;1.创建ProductController类;创建查看商品详情的方法:addProdu.原创 2022-03-07 18:09:21 · 996 阅读 · 1 评论 -
Spring Boot电商项目40:商品模块六:后台的【商品列表】接口;(想到了一个问题:【PageHelper分页查询的时候,无论如何都要先查询出所有数据】:这难道不是一种浪费吗?PS:理解错了啦)
说明:(1)本篇博客的内容:后台的【商品列表】接口;(2)本篇博客想到的一个问题:(PS:还没研究这个问题)目录一:后台的【商品列表】接口说明;1.后台的【商品列表】接口文档;2.后台的【商品列表】接口,在界面上的表现;二:正式开发;1.在ProductAdminController中,创建后台的分页查询商品列表的方法:list()方法;2.在ProduceServiceImpl中编写分页查询商品列表的方法:listForAdmin()方法;并在ProductSe.原创 2022-03-07 17:14:58 · 771 阅读 · 1 评论 -
附加:Mybatis传递多个参数时的处理策略;(包括:是否使用@Param注解,parameterType=“”的使用,使用Map或者List接收;)
说明:(1)为什么写本篇博客?:mybatis接收多个参数的情况,以前经常遇到,但在写【Spring Boot电商项目39:商品模块五:【批量上下架商品】接口;(Spring MVC接收复合数据;Mybatis接收多个参数;Mybatis批处理;)】时,意识到需要好好总结一下;(2)本篇博客主要参考【Mybatis (ParameterType) 如何传递多个不同类型的参数】,该文的作者是【FantJ】;(3)本篇博客的几点说明; ●本篇博客并没有穷举并实测所有的情况(...原创 2022-03-07 15:17:38 · 1177 阅读 · 0 评论 -
Spring Boot电商项目39:商品模块五:【批量上下架商品】接口;(Spring MVC接收复合数据;Mybatis接收多个参数;Mybatis批处理;)
说明:(1)本篇博客需要注意的点: ●在接收前端的参数时候,涉及到了【SpringMVC接收复合参数】; ●涉及到了【Mybatis接收多个参数时,Mapper.xml中的parameterType应该怎么处理】;(这一点本篇博客没有介绍,在【待写……】中做了介绍;) ●涉及到了【mybatis批处理时,<foreach>子标签的使用】;(2)声明:Mybatis接接收多个参数的情况,以前经常遇到,只是在写本篇博...原创 2022-03-07 14:00:52 · 1593 阅读 · 0 评论 -
Spring Boot电商项目38:商品模块四:【删除商品】接口;
说明:(1)本篇博客的内容:开发【删除商品】接口;(2)声明:在实际开项目中,我们不太推荐使用【删除商品】;这是因为,为了保留数据库的信息的沉淀,我们尽量不会去删除这些数据;;;;其实,在业务中,对商品进行下架,就是一种变相的软删除,而且其可以保留历史信息;(3)本篇博客需要注意的点: ● 【删除商品】时的时候,要先判断一下这条数据是否存在,如果存在再去调用删除方法;目录一:【删除商品】接口简介;1.【删除商品】接口文档;2.删除商品,在界面上的表现;...原创 2022-03-07 11:35:41 · 1763 阅读 · 0 评论 -
Spring Boot电商项目37:商品模块三:【更新商品】接口;(更新的时候,也要保证商品名不会重名)
说明:(1)原创 2022-03-07 11:31:36 · 1185 阅读 · 0 评论