SpringBoot集成Spring Security用JWT令牌实现登录和鉴权的方法

2020-05-17
最近在做项目的过程中 需要用JWT做登录和鉴权 查了很多资料 都不甚详细 有的是需要在application.yml里进行jwt的配置 但我在导包后并没有相应的配置项 因而并不适用 在踩过很多坑之后 稍微整理了一下 做个笔记 一.概念 1.什么是JWT Json Web Token (JWT)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519) 该token被设计为紧凑且安全的 特别适用于分布式站点的单点登录(SSO)场景 随着JWT的出现 使得校验方式更加简单便

java实现简单的推箱子小游戏

2020-05-17
我们做的是 "灰太狼推箱子" 的小游戏 首先准备需要的图片: 然后放入二进制文件(所谓的地图) 当然music是必不可少的 目录: 话不多说直接上代码: package com.xhh.xyx; import javax.swing.*; import java.awt.event.*; import java.awt.*; import java.io.*; import javax.sound.midi.*; import java.util.Stack; public class

你了解C#的协变和逆变吗,看完这篇就懂了

2020-05-17
从C# 4.0开始,泛型接口和泛型委托都支持协变和逆变,由于历史原因,数组也支持协变. 里氏替换原则:任何基类可以出现的地方,子类一定可以出现. 协变(out) 协变:即自然的变化,遵循里氏替换原则,表现在代码上则是任何基类都可以被其子类赋值,如Animal = Dog.Animal = Cat 使用out关键字声明(注意和方法中修饰参数的out含义不同) 被标记的参数类型只能作为方法的返回值(包括只读属性) 在没有协变时: abstract class Animal {} class Dog

Java实现推箱子游戏

2020-05-17
本文实例为大家分享了Java实现推箱子游戏的具体代码,供大家参考,具体内容如下 package Test1; //用于调用Test2包 import Test2.*; import java.awt.*; import javax.swing.*; public class APP extends JFrame{ public static void main(String[] args) { // TODO Auto-generated method stub APP a = new APP(

如何利用nginx通过正则拦截指定url请求详解

2020-05-17
nginx服务器 nginx是非常出色web服务器,对于静态文件的处理非常高效,同时它的代理转发功能和其它后台服务器搭配起来也非常的简单高效. location 我们知道nginx会对请求进行解析,然后回得到关于请求的url等信息,我们只需要对url进行匹配,然后拦截即可. 匹配规则 location / { if ($request_uri ~* ^/\?http(.*)$) { return 404; } } 经过这样的匹配,我们就可以拦截所有请求根目录的网址并且参数为?httpxxx类似的

微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法

2020-05-17
前言: 微信小程序的循环实现,通过wx:for 与 wx:for-items 与 wx:key,那么他的主要使用特点是什么呢? 1 wx:for 从目前的例子看,wx:for 的使用确实是对数组来做的,参考微信icon示例程序. 示例里面都是对数组进行条件判断,比如iconsizejius就是一个典型的数组. 2 wx:for-items 与wx:for-item 2.1 wx:for-items 现在看wx:for-items, 和wx:for比,wx:for-items有什么不同呢? [案]

VSCode配置C++环境的方法步骤(MSVC)

2020-05-17
 最近心血来潮,想用一下微软的VSCode写一下C++,然而第一步就卡住了,竟然不会配置C++环境,陆陆续续搞了两天,总算是弄明白了,网上msvc教程比较少,就打算分享出来,也记录下自己的历程.  先说说我的理解吧,Visual Studio Code和visual studio不同,后者是属于IDE是个集成开发环境,下载好基本就能直接用来写C++等:  而Visual Studio Code(以下简称VSC)是一个编辑器,简单来说和windows电脑上的那个看.txt文件的记事本一个类别,然而

Django ORM实现按天获取数据去重求和例子

2020-05-17
我就废话不多说了,大家还是直接看代码吧! def total_data(request): data = request_body(request, 'POST') if not data: return http_return(400, '参数错误') # 前端传入毫秒为单位的时间戳 startTimestamp = data.get('startTime', '') endTimestamp = data.get('endTime', '') if startTimestamp and en

SpringBoot配置lombok与logback过程解析

2020-05-17
一 什么是lombok 在写Java程序的时候经常会遇到如下情形:新建了一个Class类,然后在其中设置了几个字段,最后还需要花费很多时间来建立getter,setter方法还有构造函数等 . lombok项目的产生就是为了省去我们手动创建getter和setter方法的麻烦,它能够在我们编译源码的时候自动帮我们生成getter和setter方法. 即它最终能够达到的效果是:在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法. 二 lombo

微信小程序使用GoEasy实现websocket实时通讯

2020-05-17
不需要下载安装,便可以在微信好友.微信群之间快速的转发,用户只需要扫码或者在微信里点击,就可以立即运行,有着近似APP的用户体验,使得微信小程序成为全民热爱的好东西~ 同时因为微信小程序使用的是Javascript语法,对前端开发人员而言,几乎是没有学习成本和技术门槛的.对于大部分场景,都可以使用小程序快速开发实现,不论是开发周期还是开发成本都低的让人笑哭,所以受到了技术开发团队的各种追捧~ 但如果要在小程序里快速的实现一个即时通讯功能,就有点尴尬,因为微信官方提供的只是一个底层的websock

Python Pandas 对列/行进行选择,增加,删除操作

2020-05-17
一.列操作 1.1 选择列 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])} df = pd.DataFrame(d) print (df ['one']) # 选择其中一列进行显示,列长度为最长列的长度 # 除了 index 和 数据,还会显示 列表头名,和 数据 类型 运行结果: a    1.0 b   

django简单的前后端分离的数据传输实例 axios

2020-05-16
前端使用的是vue,下面是axios的主要代码 methods: { search: function () { var params = { content1: this.content1 } this.$axios.post("http://127.0.0.1:8000/search/", params) .then((response)=> { console.log(response); this.response1=response.data['content1'] }

使用PyQt的QLabel组件实现选定目标框功能的方法示例

2020-05-16
问题背景   基于PyQt5开发了一个可以用于目标跟踪的软件,在开发过程中遇到一个问题,就是如何在PyQt5的组件QLable中自主选定目标框,这个在opencv里面有专门的函数完成这个工作:cv2.selectROI(),我的目的就是在QLabel的基础上,实现类似函数cv2.selectROI()的功能,这样在运行程序的过程中,就能在视频框里面直接选取感兴趣区域.直接贴出实现的最终效果: 上图中的红色框框就是在QLabel的基础上实现的功能. 实现思路   具体要实现的功能是,在视频显示区域

Windows和Linux实现远程桌面连接

2020-05-16
对于远程桌面连接Linux,大家可能会第一时间想到使用VNC,,远程桌面Windows,大家第一时间会想到使用Windows自带的远程桌面.那么有没有办法,使得在Linux中可以远程Windows,在Windows中远程桌面Linux?今天就跟大家一起探讨一下Linux与Windows相互远程.以CentOS6.6为例,步骤如下所示: 使用Windows远程桌面连接Linux 1.检查服务器是否安装GNome [root@admin /]# rpm -qa | grep desktop 如果在查

Java三种IO模型原理实例详解

2020-05-16
Java中IO的模型分为三种,同步阻塞的BIO.同步非阻塞的NIO.异步非阻塞的AIO. BIO[同步阻塞] 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒绝请求,如果有的话,客户端会线程会等待请求结束后才继续执行. NIO[同步非阻塞] NIO本身是基于事

怎么理解wx.navigateTo的events参数使用详情

2020-05-16
遇到一个这样的业务需求, 用户点击提现按钮, 跳转到提现处理结果页面, 为了避免提现请求被重复提交, 所以需要在用户点击了提交按钮以后就把按钮锁起来不给用户提交, 在拿到请求结果以后再把按钮打开 先看界面 再看实现逻辑 onWithdraw () { console.log('加锁', this.data.isWithdrawing) if (this.data.isWithdrawing) return // isWithdrawing要在data中初始化为false this.data.is

在Django中自定义filter并在template中的使用详解

2020-05-16
Django内置的filter有很多,然而我们由于业务逻辑的特殊要求,有时候仍然会不够用,这个时候就需要我们自定义filter来实现相应的内容.接下来让我们从自定义一个get_range(value)来产生列表的filter开始吧. 首先在你的django app的models.py的同级目录建立一个templatetags的文件夹,并在里面新建一个init.py的空文件,这个文件确保了这个文件夹被当做一个python的包.在添加了templatetags模块之后,我们需要重新启动服务器才能使其

bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码

2020-05-16
注意:jQuery报 Maximum call stack size exceeded 错误描述:超出最大调用堆栈大小 错误原因:内部形成递归 解决方案: html 写法不规范,更改 html 写法,可参考官网示例,或下面代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" conte

Vue 基于 vuedraggable 实现选中、拖拽、排序效果

2020-05-16
今天有个朋友说要做个效果:Vue实现拖拽排序,要有 checked,输出结果是排序后的,要全选,未选中的不能拖动. 其实我之前基于 Sortable 做过一个类似的效果.也给他看过了,没看太明白,他就自己基于 vuedraggable 实现了一下. 正好有点问题给他解决了一下.废话不多说,先上最终效果:Vue 拖拽排序效果 测试地址.下面就是最终效果图. 效果一:实现选中 和 全选效果 就下面这样,elementUI 官方 Demo.很简单毫无挑战呀. <el-checkbox :indeter

vue+koa2搭建mock数据环境的详细教程

2020-05-16
前段时间写了一篇前端vue项目实现mock数据方式的文章,主要是在vue项目里使用mock数据,数据和项目耦合在一起,不太优雅,作为一个有追求的前端,怎么能容忍这种方法呢?特以此篇,记录利用koa2搭建服务端,提供mock数据的方法. 初始化vue项目 这里以vue项目为主,当然别的类型项目依然可以使用这种mock数据的方式. vue create vue-koa2-demo 前提是安装了vue-cli的脚手架,我电脑安装的是vue-cli3的版本.按照要求一步一步选择后,记得选择安装vuex,