青橙商城
文章平均质量分 52
618GLOAL_COOK2237
未来由你选择!
展开
-
青橙16.2 微信支付模块、服务端推送WebSocket、RabbitMQ Web STOMP 插件、STOMP协议、超时未支付订单处理(用延时队列=(TTL+死信交换机))、消息可靠性保障、幂等性
上一篇讲了微信支付快速入门,现在讲后端与青橙的对接前端页面向后端传递订单号,后端根据订单号查询订单,检查是否为当前用户的未支付 订单,如果是则根据订单号和金额生成支付url返给前端,前端得到支付url生成支付二维 码。(4)qingcheng_service_pay新增服务类(5)qingcheng_web_portal新增PayController前端代码就不放了3. 青橙-支付回调逻辑处理测试后,在控制台看到输出的消息(2)OrderServiceImpl新增方法实现青原创 2021-05-03 20:24:24 · 320 阅读 · 0 评论 -
青橙16 微信支付模块
一、微信支付本协议为线上电子协议,签署后方可进行交易及资金结算,签署完立即生效。 本课程已经提供好“传智播客”的微信支付账号,学员无需申请。 完成上述步骤,你可以得到调用API用到的账号和密钥appid:微信公众账号或开放平台APP的唯一标识 wx8397f8696b538317mch_id:商户号 1473426802key:商户密钥 T6m9iK73b0kn9g5v426MKfHQH7X8rKwb在线微信支付开发文档:https://pay.weixin.qq.com/wiki/doc/ap原创 2021-05-03 10:54:27 · 304 阅读 · 2 评论 -
青橙16 分布式事务及其解决方案、CAP(一致性、可用性、分区容错)、BASE(基本可用、软状态、最终一致性)、XA、TCC补偿机制、消息最终一致性、库存扣减分布式事务的实现
刚才我们编写的扣减库存与保存订单是在两个服务中存在的,如果扣减库存后订单保存失败了是不会回滚的,这样就会造成数据不一致的情况,这其实就是我们所说的分布式事务的问题,接下来我们来学习分布式事务的解决方案。:就是上一篇博客的保存订单代码中调了另一个服务的,容易造成分布式事务问题一、本地事务与分布式事务1.1 事务狂神的:1.2本地事务起初,事务仅限于对单一数据库资源的访问控制,架构服务化以后,事务的概念延伸到了 服务中。倘若将一个单一的服务操作作为一个事务,那么整个服务操作只能涉及一个单 一的数原创 2021-05-02 17:33:50 · 211 阅读 · 0 评论 -
青橙15 结算、收货人地址、提交订单模块、保存订单
一、结算页商品清单更新最新的价格显示购物清单应该刷新购物车,从数据库中查询最新价格计算。二、收货人地址地址是存在tb_address表的三、提交订单tb_order 表(订单主表)tb_order_item 表(订单明细表)3.1 库存扣减逻辑实现类:...原创 2021-05-02 11:36:19 · 305 阅读 · 1 评论 -
青橙14-购物车模块(详细) 2.6利用stream
1. 购物车列表1.1 需求分析(1)实现购物车列表的显示。购物车必须登录后才可以访问。(2)从商品详细页点击“加入购物车按钮”,将商品添加到购物车。(3)点击购物车列表项中数量的加减按钮实现对数量的修改。(4)删除购物车中某条记录。使用 redis(hash类型数据) 实现购物车的存储。大key为 CacheKey.CART_LIST ,当 前登录名作为小key。购物车存储结构如下图:购物车实体是存在order表的2.后端代码:2.1根据用户名小key,返回该用户的购物车...原创 2021-05-01 17:21:43 · 410 阅读 · 0 评论 -
CAS快速入门(cas+spring_security)
一、服务端很多cas改密码配置就不说了启动tomcat,浏览器输入: http://localhost:8080/cas账户和密码是admin原创 2021-04-30 11:42:22 · 512 阅读 · 1 评论 -
单点登录SSO和CAS
一、单点登录SSO我们访问其中一个前台系统需要登录才可以访问的页面时,自动跳转到登录中心 进行登录,登录后再次跳转回该前台系统,该前台系统可以获取登录名。(用了单点登录后,你只需要登录一次就可以访问前台所以页面,不管某个页面是否还要验证的)实现单点登录有多种方案:二、CASCAS(Central Authentication Service的缩写,中央认证服务)是耶鲁大学 Technology and Planning实验室的Shawn Bayern 在2002年出的一个开源系统。刚开始 名字叫Y原创 2021-04-29 21:34:41 · 619 阅读 · 0 评论 -
青橙商城13 用户名密码加密、用户注册+验证码
1.用户名密码加密2.用户注册+验证码首先定义一个输入手机然后就返回验证码给你:然后定义控制层调用上面的接口:添加用户:就是用户注册时,点击手机注册,会输入手机,然后发送验证码,那么我们就会生成验证码,一个发给mq给啊里云,一个就发给redis。然后输入验证码的时候,我们就收到短信(啊里云)发的,输入后,后端会从后端的redis取一开始存进来的验证码出来和你输入的进行验证。定义控制层调用:然后你就可以在postman测试添加用户和验证码了。...原创 2021-04-29 21:14:15 · 707 阅读 · 0 评论 -
SSM-RabbitMQ直接模式和分列模式-青橙商城
一、直接模式这里说的直接模式就是之前讲的简单模式+工作队列模式代码就简化一些而已快速入门:创建队列,名为queue.test1.pom:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schem原创 2021-04-29 11:41:05 · 149 阅读 · 0 评论 -
青橙商城day11 过滤查询、es分页查询、排序、高亮
1.直接注入方法RestClientFactory就一个工具类方便以后连接es的原创 2021-04-27 20:46:17 · 102 阅读 · 0 评论 -
青橙商城day10-es
增加一个索引库用PUT增加一个文档也用PUT(修改也是用同样的GET,修改后它的版本号会加一的)查询某个库的内容用GET:GET sku/_search(match_all的简写)day10:今天就学了es的基本操作!原创 2021-04-27 17:15:18 · 294 阅读 · 0 评论 -
CORS实现跨域请求
原创 2021-04-26 15:14:13 · 119 阅读 · 0 评论 -
青橙商城 day09 前台
1.定义一个枚举类来存放redis的key:原创 2021-04-25 21:29:38 · 118 阅读 · 0 评论 -
缓存穿透、缓存击穿、缓存雪崩(面试高频)
一、缓存穿透(上面代码表面看没问题,但实际黑客,不断用不存在的id来查,这个代码会不断从后台数据库查,造成压力,这就是缓存穿透)解决方案:1.接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截;2.从缓存取不到的数据,在数据库中也没有取到,这时也可以将key-value对写为 key-0。这样可以防止攻击用户反复用同一个id暴力攻击。(但如果他每次用不同的id来查依然存在问题)代码举例:3.使用缓存预热(推荐)二、缓存击穿缓存击穿是多个人查同一条数据的哦缓原创 2021-04-25 21:05:50 · 84 阅读 · 0 评论 -
Spring Data和SpringDataRedis快速入门
SpringDataRedis 属于Spring Data 家族一员,用于对redis的操作进行封装的框架Spring Data ----- Spring 的一个子项目。Spring 官方提供一套数据层综合解决方案,用 于简化数据库访问,支持NoSQL和关系数据库存储。包括Spring Data JPA 、Spring Data Redis 、SpringDataSolr 、SpringDataElasticsearch 、Spring DataMongodb 等 框架。一、SpringDataRedi原创 2021-04-25 20:31:47 · 136 阅读 · 1 评论 -
day 08青橙商城 商品详细页
1.controller和restcontroller的区别restcontroller是返回json的而controller是可以跳转给模板引擎的。2.轮播图3.欢迎页,可以省略控制器的.do:(在qingcheng_web_portal的web.xml配置)<!--指定欢迎页,可以省略.do--> <welcome-file-list> <welcome-file>/index.do</welcome-file> </w原创 2021-04-24 17:36:05 · 230 阅读 · 0 评论 -
Thymeleaf模板引擎快速入门
一、概念二、快速入门(1)创建测试无骨架maven工程,引入依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/PO原创 2021-04-24 10:04:21 · 236 阅读 · 0 评论 -
青橙商城day_07 同源策略 、菜单分类、管理员登录日志、ip地址和浏览器
1.controller的web.xml的过滤器可以配置多个:如前端控制器的过滤器、spring security的过滤器:2.登录从数据库认证实现:3.前台菜单实现前台要求返回的json和我们后端的数据库表字段名不一样怎么办?这个时候就不能直接返回实体类,要自己封装为map才行了,如下图:上面的递归调用得到树状的三级菜单。day07总结:今天完成的是认证功能。...原创 2021-04-23 11:29:48 · 156 阅读 · 1 评论 -
Spring Security安全框架快速入门、认证、授权、UserDetailsService
一、概念什么是安全框架? 解决系统安全问题的框架。如果没有安全框架,我们需要手动处 理每个资源的访问控制,非常麻烦。使用安全框架,我们可以通过配置的方式实现对资 源的访问限制。(之前用session来认证很麻烦的)二、快速入门需求:实现简单的登陆,当用户没有登陆访问主页执行拦截跳转到登陆,登陆后跳转到 主页。实现退出登陆的功能,退出后再次访问主页仍然拦截。用户名和密码不连接数据 库,直接在配置文件中配置。(1)新建war工程(无骨架maven工程),pom文件引入依赖:<?xml vers原创 2021-04-22 21:22:35 · 210 阅读 · 0 评论 -
BCrypt密码加密
在用户模块,对于用户密码的保护,通常都会进行加密。我们通常对密码进行加 密,然后存放在数据库中,在用户进行登录的时候,将其输入的密码进行加密然后与数 据库中存放的密文进行比较,以验证用户密码是否正确。 目前,MD5和BCrypt比较流 行。相对来说,BCrypt比MD5更安全快速入门:新建一个无骨架的maven工程...原创 2021-04-22 19:56:25 · 4220 阅读 · 0 评论 -
青橙商城day -06 Echars、流量统计(UV、PV)
1.service的实现类(而不是在service的接口加哦)加@Service (dubbo的service)还要@Autowired注入其mapper。 service的接口只需要定义接口就行,其他什么都不用加。2.在controller的实现类加上@RestController和@RequestMapping,然后@Reference service(而不是接口的实现类哦,其实就是向上转型)...原创 2021-04-22 11:36:21 · 184 阅读 · 0 评论 -
通用mapper定义你自己的SQL语句
通用mapper没你想要的接口怎么办?首先你定义好实体类。让通用mapper实现基础的sql先。然后:然后就是你的service调用的问题了。原创 2021-04-22 09:35:07 · 2170 阅读 · 0 评论 -
青橙删除day-05 springtask定时任务、cron表达式
定时任务解决方案-SpringTask(定时执行某段代码)Spring3.0以后自主开发的定时任务工具,spring-task,可以将它比作一个轻量级的 Quartz,而且使用起来很简单,除spring相关的包外不需要额外的包,而且支持注解和 配置文件两种形式。快速入门:(1)在qingcheng_common_web工程下的配置文件applicationContext-config.xml中 添加配置:<?xml version="1.0" encoding="UTF-8"?><原创 2021-04-21 20:56:02 · 106 阅读 · 0 评论 -
青橙商城-day4 spu、sku、逻辑删除
1.SPU和SKUSPU就是比如小米10手机,SKU可以是小米10 128G或266G的。与前面讲的手机模板、手机参数、手机规格不一样哦。可以这样说:模板>SPU>SKU>规格参数原创 2021-04-20 20:28:04 · 192 阅读 · 0 评论 -
Mycat数据库中间件、分布式ID雪花算法
一、Mycat数据库中间件(用来数据库分片用的):二、分布式ID生成解决方案这是由于数据库表分片之后,每个小表的主键从1 2 3这样自增,很有可能会冲突,所以我们要解决:有三个方法:UUID(不太好),Redis(不太好),雪花算法(好)。2.1、UUID(不推荐)2.2、Redis(不推荐)2.3、雪花算法snowflake(推荐)...原创 2021-04-20 16:32:46 · 496 阅读 · 0 评论 -
ElementUI快速入门
都是从官网复制改改就完事:https://element.eleme.cn/#/zh-CN/component/installation先把css和js引入:brand.html:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>品牌管理</title> <link rel="stylesheet" href原创 2021-04-20 16:32:35 · 142 阅读 · 0 评论 -
青橙商城day-3 模板、规格参数
2.dubbo加事务:3.原创 2021-04-19 15:55:41 · 110 阅读 · 0 评论 -
啊里云OOS(文件存储用的)
这是上传图片或者文件到啊里云用的原创 2021-04-18 20:56:05 · 130 阅读 · 0 评论 -
青橙商城-day2 Element
1.箭头函数原创 2021-04-18 11:20:20 · 174 阅读 · 0 评论 -
青橙商城-day01
1.先在Service定义一个接口随便起名eg接口1,然后再在serviceImpl调用通用mapper里面的方法,然后在controller使用dubbo的@Reference来调用service的接口1方法(其实就是通过多态调用其serviceimpl的方法)。原创 2021-04-16 19:50:11 · 279 阅读 · 0 评论