前言 基于之前两篇(<spring boot高性能实现二维码扫码登录(上)——单服务器版>和<spring boot高性能实现二维码扫码登录(中)——Redis版>)的基础,我们使用消息队列的订阅与发布来实现二维码扫码登录的效果. 一.实现原理 1.参考微信的二维码登录机制 首先,请求后端拿到二维码.然后通过http长连接请求后端,并获取登录认证信息.这时,当二维码被扫,则记录seesion并跳转至内部页面. 如果没有扫码二维码,则线程会等到30秒(也有的说是20秒),如果再此期…
前言 本打算用CountDownLatch来实现,但有个问题我没有考虑,就是当用户APP没有扫二维码的时候,线程会阻塞5分钟,这反而造成性能的下降.好吧,现在回归传统方式:前端ajax每隔1秒或2秒发一次请求,去查询后端的登录状态. 一.支付宝和微信的实现方式 1.支付宝的实现方式 每隔1秒会发起一次http请求,调用https://securitycore.alipay.com/barcode/barcodeProcessStatus.json?securityId=web%7Cauthcen…
前言 目前网页的主流登录方式是通过手机扫码二维码登录.我看了网上很多关于扫码登录博客后,发现基本思路大致是:打开网页,生成uuid,然后长连接请求后端并等待登录认证相应结果,而后端每个几百毫秒会循环查询数据库或redis,当查询到登录信息后则响应长连接的请求. 然而,如果是小型应用则没问题,如果用户量,并发大则会出现非常严重的性能瓶颈.而问题的关键是使用了循环查询数据库或redis的方案.假设要优化这个方案可以使用java多线程的同步集合+CountDownLatch来解决. 一.环境 1.ja…
概要 基于上文讲解的spring cloud 授权服务的搭建,本文扩展了spring security 的登陆方式,增加手机验证码登陆.二维码登陆. 主要实现方式为使用自定义filter. AuthenticationProvider. AbstractAuthenticationToken 根据不同登陆方式分别处理. 本文相应代码在Github上已更新. GitHub 地址:https://github.com/fp2952/spring-cloud-base/tree/master/auth…
iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言:    今天给大家推荐个好用的开源框架:WisdomScanKit,如果在开发中有用到二维码扫码,全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能,推荐使用WisdomScanKit Framework,方便iOS日常开发,优点和功能请看下面介绍. [2]简介:     1: Swift由4.2版编写,完全兼容O…
Spring Boot REST(二)源码分析 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) SpringBoot REST 系列相关的文章: SpringBoot REST(一)核心接口 SpringBoot REST(二)源码分析 在上一篇文章中提到了 Spring Boot 中的 REST 的一些使用方法,@ResponseBody 默认返回一个 json,如果需要返回 xml 或者自定义返回媒体类型时怎么办呢…
使用 Docker 和 Nginx 打造高性能的二维码服务 本文将演示如何使用 Docker 完整打造一个基于 Nginx 的高性能二维码服务,以及对整个服务镜像进行优化的方法.如果你的网络状况良好,完整操作和体验时间应不超过 15 分钟. 动手前的脑洞 最近有一个小需求,需要在页面中快速生成一些二维码. 说到生成二维码,方法很多,比如按照 QRCode 算法进行计算之后: 使用各种服务端语言,然后调用 GD 绘图库在语言中的 API 进行绘制,并生成图片,然后配合能够提供 HTTP 服务的软件…
MyBatis 简介 概述 MyBatis 是一款优秀的持久层框架,支持定制化 SQL.存储过程以及高级映射.它采用面向对象编程的方式对数据库进行 CRUD 的操作,使程序中对关系数据库的操作更方便简单.它支持 XML 描述符配置文件和注解两种方式执行 SQL 语句."简单灵活"是它在对象关系映射工具上的最大优势. mybatis-spring-boot-starter 过去使用 MyBatis 开发,需要各种配置文件.实体类.Dao 层映射关联.还有一大推其它配置.经过进行不断的优化…
spring boot / cloud (十二) 异常统一处理进阶 前言 在spring boot / cloud (二) 规范响应格式以及统一异常处理这篇博客中已经提到了使用@ExceptionHandler来处理各种类型的异常,这种方式也是互联网上广泛的方式 今天这篇博客,将介绍一种spring boot官方文档上的统一处理异常的方式.大家可以在spring boot 官方文档查看介绍 在开始介绍新的方法之前 , 我们先来分析一下 , 以前的做法有那些地方是需要优化的 场景分析 通常我们需要…
Spring Boot 启动(二) 配置详解 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Spring Boot 配置使用 Spring Boot 配置文件加载流程分析 - ConfigFileApplicationListener 一.Spring Framework 配置 略... 二.Spring Boot 配置 2.1 随机数配置 name.value=${random.int} name.int=${ra…
==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/details/52185345 --关于springboot的 springboot - 蜕变之路 - CSDN博客http://blog.csdn.net/u012706811/article/category/6357760 自从来公司后都没用过jsp当界面渲染了,因为前后端分离不是很好,反而模板引…
Spring Boot 启动(二) Environment 加载 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) 上一节中讲解了 SpringApplication 启动的整个流程,本节关注第二步 prepareEnvironment,尤其是配置文件的加载. Spring Boot 配置使用 Spring Boot 配置文件加载流程分析 - ConfigFileApplicationListener 一.prepare…
前言 由于 Ehcache 存在于单个 java 程序的进程中,无法满足多个程序分布式的情况,需要将多个服务器的缓存集中起来进行管理,需要一个缓存的寄存器,这里使用的是 Redis. 正文 当应用程序要去缓存中读取数据,但是缓存中没有找到该数据,则重新去数据库中获取数据,然后将数据存入缓存中. 还有当我们需要更新或者删除缓存中的数据时候,需要让缓存失效. 配置 在系统配置文件中加入 redis 的连接参数: spring: redis: host: 192.168.19.200 # 120.79…
0 引言 本文主要在Spring Boot 基础项目的基础上,添加 Mysql .MyBatis(注解方式)与 分页控件 的配置,用于协助完成数据库操作. 1 创建数据表 这个过程就暂时省略了. 2 搭建 MyBatis 2.1 修改pom.xml,添加一下依赖 <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-…
Spring Boot核心技术之Rest映射以及源码的分析 该博客主要是Rest映射以及源码的分析,主要是思路的学习.SpringBoot版本:2.4.9 环境的搭建 主要分两部分: Index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head>…
找了很多资料,七七八八都试了一遍,最终写出来了这个功能. 菜鸟一枚,此文只为做笔记. 简单的一个生成二维码,通过网页确认登录,实现二维码页面跳转到主页面. 有三个servlet: CodeServlet.java 干2件事 a:生成随机的uuid,是一个唯一标识,该标识贯穿整个流程 b:生成二维码图片,二维码信息:http://xx.xx.xx.xx:8080/xxxx/login.jsp?uuid= xxxx LongConnectionCheckServlet.java 进行长连接轮询操作,…
由于业务需要引入微信扫码支付,故利用websocket来实现消息推送技术. 实现大致流程:首先客户端点击微信支付按钮,触发微信支付接口,同时微信支付响应成功参数后,连接websocket客户端,此刻利用微信支付返回的参数生成一个二维码弹框,此时连接websocket 客户端时会发送一个指定的消息内容,然后等待用户扫码支付完成后,微信支付异步通知的地方执行websocket消息推送,根据指定的消息内容,获取到websocketsession,然后对其进行消息推送,等客户 端接收到消息之后,即可执行…
昨日内容回顾 1.app播放音乐 plus.audio.createPlayer(文件路径/URL) player.play() 播放音乐 player.pause() 暂停播放 player.resume() 继续播放 player.stop() 停止播放,清空player对象 # 当停止之后,无法在使用play() resume()继续播放 2.app遥控玩具播放内容 Websocket通讯 实现手机遥控app app:{content_id:123,to_user:123456} {mus…
一.前言 虽然腾讯官方不支持使用二维码充值Q币,但对于喜欢钻研的人来说这不是问题,本文利用WPF技术讲解从扫码登录到生成Q币充值二维码的一整套解决方案. 因为充值Q币需要先用QQ号登录官网.所以我们首先要解决登录问题.文章将分为两篇讲解,这是第一篇——扫码登录.既然是使用WPF技术,我们就要脱离腾讯充值官网(https://pay.qq.com),将相关操作在桌面上完成. 二.获取登录所需的数据 找到登录所需的二维码网址 打开官网首页,点击右上角的登录,通过抓包或分析html源码,我们可以很轻松…
扫码登录原理转载自: https://www.cnblogs.com/liyasong/p/saoma.html 需求介绍 首先,介绍下什么是扫码登录.现在,大部分同学手机上都装有qq和淘宝,天猫等这一类的软件.而开发这些app的企业,都有他们相对应的网站.为了让用户在使用他们的网站时,登录更加方便和安全.这些企业提供了, 使用手机,扫一扫,就可以登录的服务.网页登录时的效果如下: 有很多小伙伴可能会感到很神奇,网页上只是显示了个二维码,它怎么就知道是哪个手机扫到了二维码,并且进行登录的呢?而且…
话不多说  直接上菜! 一.因为是微信扫码登录,所有要在微信开放平台  微信开放平台 (qq.com) 进行注册----- 如下 1.资源中心 里面也有详细的官方讲解,里面也有demo  可以下载 2.在 管理中心      创建应用 填写一系列的信息 3. 提交审核,大概需要三到五天的时间审核完成: 4. 审核完成微信开放平台会生成一个appid,和sercet 这两个是唯一的id 需要妥善保管: 5. 按照微信开放平台给的文档,下载相应的sdk以及签名工具,在此强调 必须是用签名打包的正式版…
Android精选源码 CalendarView日历选择器 android下拉刷新动画效果代码 一个非常方便的fragment页面框架 android组件化方案源码 Zxing实现二维码条形码的扫描和解析 android实现拖拽返回PhotoView 基于Kotlin的新闻客户端 仿美团选择城市.微信通讯录导航悬停分组索引列表. Kotlin 实现的 View to View 动画效果库 Android 中的转场动画优化 Android优质博客 Android Studio开发使用小技巧 1.t…
转载 https://www.cnblogs.com/jys509/p/4592539.html 引用ThoughtWorks.QRCode.dll (源代码里有) 1.简单二维码生成及解码代码: //生成二维码方法一 private void CreateCode_Simple(string nr) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); qrCodeEncoder.QRCodeEncodeMode = QRCodeEncode…
文档教程模拟: http://www.023xs.cn/Article/37/laravel5%E9%9B%86%E6%88%90%E6%94%AF%E4%BB%98%E5%AE%9Dalipay%E6%89%AB%E7%A0%81%E6%94%AF%E4%BB%98%E6%B5%81%E7%A8%8B%EF%BC%88Laravel%E6%94%AF%E4%BB%98%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%EF%BC%89 1.在对应的蚂蚁金服,申请[网页&移…
iOS精选源码 全网最详细购物车强势来袭 一款优雅易用的微型菜单弹窗(类似QQ和微信右上角弹窗) swift, UITableView的动态拖动重排CCPCellDragger 高仿书旗小说 Flutter版,支持iOS.Android NKAVPlayer 轻量级视频播放.控制,iOS AVPlayer RN 仿微信朋友圈 SwiftScan 二维码/条形码扫描.生成,仿微信.支付宝 Mac上解压Assets.car文件的小工具cartool tispr-card-stack - swift…
大概流程:   先安装 微信 的登录, 然后 局部引入,局部注册,方法调用,存 token,跳转路由 npm 安装 npm install vue-wxlogin --save-dev 微信安装 微信登录,后面需要用到要扫码登录的页面 import wxlogin from 'vue-wxlogin'; // 先引入,后注册   components:{     wxlogin   }, template 部分 <wxlogin   appid=" 微信首页内找 appid " …
Spring Boot入门第二篇 第一天的详见:https://www.cnblogs.com/LBJLAKERS/p/12001253.html 同样是新建一个pring Initializer快速创建Spring Boot项目. 在resource的目录下新建两个application-dev.properties/application-pro.properties属性文件分别代表开发环境和生产环境.如图: 指定使用的属性配置文件 一:通过默认的application.properties…
导读 篇幅较长,干货十足,阅读需花费点时间.珍惜原创,转载请注明出处,谢谢! Spring Boot基础 Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 简单来说,SpringB…
二维码终于火了,现在大街小巷大小商品广告上的二维码标签都随处可见,而且大都不是简单的纯二维码,而是中间有个性图标的二维码. 我之前做了一个使用google开源项目zxing实现二维码.一维码编码解码的程序并开放了源码(用C#实现的条形码和二维码编码解码器),今天继续在此程序基础上,实现二维码中间加小图片. 背景知识 QRcode使用里德-所罗门码来进行错误修正.对于我们来说,里德-所罗门编码有两个非常重要的特性.第一,它是一种显式系统码,也就是说,你可以在最终的编码中直接看到原有的信息.就好比我…
最近公司的一个分布式系统想要尝试迁移到Dubbo,项目本身是Spring Boot的,经过一些努力,最终也算是搭建起一个基础的框架了,放到这里记录一下.需要依赖一个外部的zookeeper. 源码地址:点我 项目结构: Maven构建的Spring Boot 多模块项目,provide为服务提供者,开放出接口供外部访问:consume为服务消费者,RPC调用provide提供的服务. Provide Dubbo配置类: @Configuration @PropertySource("classp…