-
[置顶]软件接口设计怎么做?前后端分离软件接口设计思路
本文关于软件接口设计怎么做?前后端分离软件接口设计思路。好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。为什么在接口制定标准中说:一流的企业做标准,二流的企业...
-
[置顶]接口管理如何做?接口实现版本管理的意义和最佳方法
本文关于接口管理如何做?接口实现版本管理的意义和最佳方法。API版本管理的重要性不言而喻,对于API的设计者和使用者而言,版本管理都有着非常重要的意义。下面会从WEB API 版本管理的角度提供几种常...
-
[置顶]实现API管理系统的关键
下面将通过几个关键词的形式说明API管理的重要性和未来的实现方式。1.生命周期管理在整个API生命周期中更深入地集成所有工具将进一步提高生命周期循环的速度,而且更重要的是提供满足消费者需求的API。这...
-
SpringBoot集成shiro,MyRealm中无法@Autowired注入Service的问题
SpringBoot集成shiro,MyRealm中无法@Autowired注入Service的问题网上说了很多诸如是Spring加载顺序,shiroFilter在Spring自动装配bean之前的问...
-
页面js:
$(function() {
// 文档就绪
$("#qrcode").attr("src", "/qrcode/${uuid}");
$("#result").html("使用手机扫描二维码");
keepPool();//一加载就进入自动请求-见步骤3
});
3、页面js自动请求服务器查询是否被扫
function keepPool(){
$.post("/pool", {
uuid : "${uuid}",
}, function(data) {
if(data=='success'){
$("#result").html("登录成功");
}else if(data=='timeout'){
$("#result").html("登录超时,请刷新重试");
}else{
keepPool();
}
});
}
4、服务器收到请求,这里服务器端的事情还是蛮多的,分解一下
1、首先要生成二位码,对应 $("#qrcode").attr("src", "/qrcode/${uuid}");
2、生成二位码后,需要将uuid放入到缓存,我是将UUID作为建,新建一个对象作为值(这里可以采用redis),我为了学习方便,自己写了个缓存
3、查询是否被扫,对应$.post("/pool", { uuid : "${uuid}"}......,这时候有一个等待的功能(缓存中的对象来控制,这个对象的键就是UUID)
4、被扫后,立马通知等待者(这里是通过缓存中的对象来通知消息的)
5、上面说了好多次对象了,对的,都是同一个,接着贴代码了
4.1-4.2 生成二位码,我这里使用的google的zxing
@RequestMapping("/qrcode/{uuid}")
@ResponseBody
String createQRCode(@PathVariable String uuid,HttpServletResponse response)
{
System.out.println("生成二维码");
String text = "http://172.20.16.194:8080/login/"+uuid;
int width = 300;
int heihttp://ght = 300;
String format = "png" alt="扫二维码自动跳转【java】详解" title="扫二维码自动跳转【java】详解" width="200" height="150">
-
java wagon如何打包文件到不同服务器
java wagon如何打包文件到不同服务器java需要编译的,打包后文件要上传到服务器。推荐二个办法,第一种,用jenkins,可以使用centos7 jenkins 发布vue ssr,编译类的语...