2019-12-03 15:12
1.为什么需要自己实现参数解析器我们都知道在有注解的接口方法中加上@RequestBody等注解,springMVC会自动的将消息体等地方的里面参数解析映射到请求的方法参数中。...
2019-12-03 15:34
简单实现
token可用于登录验证和权限管理。
大致步骤分为:
前端登录,post用户名和密码到后端。
后端验证用户名和密码,若通过,生成一个token返回给前端。
前端拿到token用vuex和localStorage管理,登录成功进入首页。
之后前端每一次权限操作如跳转路由,都需要判断是否存在token,若不存在,跳转至登录页。
前端之后的每一个对后端的请求都要在请求头上带上token,后端查看请求头是否有token,拿到token检查是否过期,返回对应状态给前端。
若token已过期,清除token信息,跳转至登录页。
...
2019-12-03 15:40
树和图是两大类常用的数据结构,在树这一类数据结构中,二叉查找树是掌握后续各种树的基础,所以,我们先学习二叉查找树。看一下二叉查找树是怎么实现的,怎么实现常规的插入、删除、查找等操作。一、树的相关概念...
2019-12-03 15:51
移动开发不同与PC端开发,可能会经历各种意想不到的问题,尤其是移动端应用刚起步的几年;随着移动互联网的快速发展,有些问题已经得到了很好的支持,如1像素边界的问题。当然,要更好地解决这些移动端的问题,就需有移动端领域相关的知识,下面就来说说。
dpr设备像素比
首先说一下,这个dpr不仅仅是移动端才有的,pc端也有,但是对一些移动端的问题产生的原因及解决显得比较重要,比如1像素的问题。先来看几个概念:
物理像素(physical pixel)
一个物理像素就是显示设备上最小的物理显示单元,每个物理像素都有自己的颜色值和亮度值。例如iphone6手机屏幕有750*1334个物理像素
...
2019-12-03 15:06
原文链接:使用 buildx 构建多平台 Docker 镜像...
2019-12-03 15:22
(马蜂窝技术原创内容,申请转载请在公众后后台留言,ID:mfwtech )
大家好,我是来自马蜂窝电商旅游平台的甲小蛙,从前是一名 PHP 工程师,现在可能是一名 PHJ 工程师,以后......
前阵子,我从大道消息听说公司商品订单技术栈要推 Java。我是一个喜欢走在时代前列线上的人,凡是要做到领先。我对 Java 也是仰慕已久,于是花了两天时间学习 Java,并调研各种框架和解决方案,决心要把商品和订单的主要功能用 Java 重构掉。
在经历了 798 难后现在这些东西都踉跄上线了,我也成了马蜂窝的顶梁柱。虽然表面看来风光无限,但是这一路走来相当不容易,累到有上觉没下觉,踩坑把腿踩断,才有了今天这篇战记。希望大家看完后不要吸取任何教训,抱着不撞南墙不回头的心态,继续从头踩坑。
...
2019-12-03 15:52
最近Vue项目中写到一个业务,就是需要把对话框的表单中的数据,每次点击提交之后,就存进一个el-table表格中,待多次需要的表单数据都提交进表格之后,再将这个表格提交,实现多个表单数据的同时提交,期间还可以用表格进行预览、修改等其他操作。将每个表单数据存进表格的代码大致代码如下:
let object=this.ruleForm;
this.tableData.push(object);
其中,对话框中的表单使用了el-form,this.ruleForm是vue实例中的一个对象,而this.tableData是vue实例中的一个数组对象。直接将this.ruleForm赋值给一个变量object,然后每次再push进this.tableData里,这样看上去逻辑似乎也没啥毛病,但是,这样就会产生一个神奇的现象:每次填写表单中的数据的时候,表格中的每一行数据都会随着你表单的填写的改变而改变。
...
2019-12-03 15:41
系列博客,原文在笔者所维护的github上:https://aka.ms/beginnerAI,
点击star加星不要吝啬,星越多笔者越努力。
3.2 交叉熵损失函数
交叉熵(Cross Entropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。在信息论中,交叉熵是表示两个概率分布 p,q 的差异,其中 p 表示真实分布,q 表示非真实分布,那么H(p,q)就称为交叉熵:
H(p,q)=∑ipi⋅ln1qi=−∑ipilnqi(1)
交叉熵可在神经网络中作为损失函数,p 表示真实标记的分布,q 则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量 p 与 q 的相似性。
...
2019-12-03 15:14
在大多的JD(职位介绍)里,会写明该职位需要xx时间的相关经验,换句话说就是需要在简历中看到一定年限的相关商业项目经验,否则估计连面试的机会都没。
在本文里,不讨论这种门槛是否合理,而会以Java相关经验为例,说说面试官甄别真实商业项目的方式,并以此为基础讲述在简历中描述项目的要点,并进一步给出在面试中介绍项目的相关技巧。
1 和学习项目相比,商业项目为什么值钱?
为什么在筛选简历和面试过程中要甄别学习项目还是商业项目?
1 学习项目里,只要跑通正常流程,无需考虑异常处理机制,也无需经过高并发情况下的压测。
...
2019-12-03 15:28
今天,我们将讨论一个非常重要的主题-Java 中的异常处理。尽管有时可能会对此主题进行过多的讨论,但并非每篇文章都包含有用且相关的信息。
Java 中最常见的异常处理机制通常与 try-catch 块关联 。我们使用它来捕获异常,然后提供在发生异常的情况下可以执行的逻辑。
的确,你不需要将所有异常都放在这些块中。另一方面,如果你正在研究应用程序的软件设计,则可能不需要内置的异常处理机制。在这种情况下,你可以尝试使用替代方法-Vavr Try 结构。
在本文中,我们将探讨 Java 异常处理的不同方法,并讨论如何使用 Vavr Try 替代内置方法。让我们开始吧!
...
2019-12-03 15:38
一、回顾JWT的授权及鉴权流程
file
在笔者的上一篇文章中,已经为大家介绍了JWT以及其结构及使用方法。其授权与鉴权流程浓缩为以下两句话
授权:使用可信用户信息(用户名密码、短信登录)换取带有签名的JWT令牌
鉴权:解签JWT令牌,校验用户权限。具有某个接口访问权限,开放该接口访问。
二、Spring Security授权细节说明
我相信大家都能理解上面的授权与鉴权的整体流程,但是具体到使用Spring Security 如何实现授权,其中细节及原理还是需要单独提出来说明一下。
2.1.授权流程细节:
...