使用动态路由实现权限管理
我们在做项目经常遇到用户的权限问题,首先我们确定的权限控制分为两大部分,其中根据粒的大小分的更细:1、接口访问的权限控制;2、页面的权限控制:①菜单中的页面是否能被访问;②页面中的按钮(增、删、改)的权限控制是否显示,正常来说用户登录后都会返回一个Token,我们把它储蓄到cookie中,然后我们可以通过axios拦截器将cookie中的用户信息存到header里面ervice.intercept
微信小程序pick组件使用问题总结
写本文主要的目的是,前段时间在写小程序的时候,使用官方自带的pick组件,使用region时遇到的问题..这里我创建了一个index目录,该目录下面创建好必备的文件。这里只会操作到.js和.wxml文件。第一种方案wxml文件添加如下内容消费区域:{{regionSelectText}}{{region}}js文件添加如下内容Page({data:{'regionSelectText':'点击此处
syslog--unix like系统常用的log工具
当前的一个项目需要音视频的技术,而公司刚好没有类似的产品。幸好开源社区如此的强大,稍微谷歌一下,就找到了强大的Kamailio整合Asstersik的解决方案。接下来的事情非常顺利,安装ubuntu操作系统、下载源码、编译、安装软件,按照官方文档一步步前进。过程中没有提示任何错误,这让我们很兴奋。但是当我们使用imsandroid(一个Android系统的Sip客户端)进行测试时,结果显示连接失败
docker决战到底(五) 制作自己的Jenkins镜像
一、前言概要本篇实践记录主要围绕制作一个自己的jenkins镜像而展开,前提是需要你了解怎么制作一个镜像,如果你还不了解,那么建议你先阅读docker官方文档 编写Dockerfiles的最佳实践。在上一篇中,我们从jenkins中构建的restful-api-demo也使用到了自己制作的Dockerfile,只是它是基于springboot开发的web应用来制作的,你也可以参考一下,在以后你自己
定时从列表中爬今日通知信息,打包成windows服务
TopShelf概述Topshelf是创建Windows服务的另一种方法,老外的一篇文章Createa.NETWindowsServicein5stepswithTopshelf通过5个步骤详细的介绍使用使用Topshelf创建Windows服务。Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主。不了解TopShelf
Spark Streaming + Spark SQL 实现配置化ET
SparkStreaming非常适合ETL。但是其开发模块化程度不高,所以这里提供了一套方案,该方案提供了新的API用于开发SparkStreaming程序,同时也实现了模块化,配置化,并且支持SQL做数据处理。项目地址前言传统的SparkStreaming程序需要:构建StreamingContext设置checkpoint链接数据源各种transformforeachRDD输出通常而言,你可能
Django搭建个人博客(二)
更换数据表mysql上文说到编写好了我们的model模块,映射生成数据表,之前我们用的是Django默认的数据库sqlite3,这里我们更改一下使用mysql。我们在navicatformysql中新建数据库blogdjango。至于navicatformysql的安装及配置请大家自行百度。在settings.py文件中:DATABASES = { 'default': { '
async/await使用深入详解
async和await作为异步模型代码编写的语法糖已经提供了一段时间不过一直没怎么用,由于最近需要在BeetleXwebapi中集成对Task方法的支持,所以对async和await有了深入的了解和实践应用.在这总结一下async和await的使用,主要涉及到:自定义Awaitable,在传统异步方法中集成Task,异常处理等.介绍在传统异步方法处理都是通过指定回调函数的方式来进行处理,这样对于业
通过案例对SparkStreaming透彻理解三板斧之二
SparkStreaming运行时与其说是SparkCore上的一个流式处理框架,不如说是SparkCore上的一个最复杂的应用程序。如果可以掌握Sparkstreaming这个复杂的应用程序,那么其他的再复杂的应用程序都不在话下了。 我们知道SparkCore处理的每一步都是基于RDD的,RDD之间有依赖关系。上图中的RDD的DAG显示的是有3个Action,会触发3个job,RDD自下
Java 枚举(enum) 详解7种常见的用法
JDK1.5引入了新的类型——枚举。在Java中它虽然算个“小”功能,却给我的开发带来了“大”方便。大师兄我又加上自己的理解,来帮助各位理解一下。用法一:常量在JDK1.5之前,我们定义常量都是:publicstaticfinal....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。Java代码public enum Color { RED, G
Spark Task 的执行流程② - 创建、分发 Task
本文为Spark2.0源码分析笔记,由于源码只包含standalone模式下完整的executor相关代码,所以本文主要针对standalone模式下的executor模块,文中内容若不特意说明均为standalone模式内容创建task(driver端)task的创建本应该放在分配tasks给executors一文中进行介绍,但由于创建的过程与分发及之后的反序列化执行关系紧密,我把这一部分内容挪
Go语言之并发示例(Runner)
这篇通过一个例子,演示使用通道来监控程序的执行时间,生命周期,甚至终止程序等。我们这个程序叫runner,我们可以称之为执行者,它可以在后台执行任何任务,而且我们还可以控制这个执行者,比如强制终止它等。现在开始吧,运用我们前面十几篇连载的知识,来构建我们的Runner,使用一个结构体类型就可以。//一个执行者,可以执行任何任务,但是这些任务是限制完成的,//该执行者可以通过发送终止信号终止它typ
Presto源码分析之数据类型
Presto作为一个计算引擎,除了支持一些常见的数字、字符串类型的数据,还支持一些别的系统里面比较少见的自定义的IpAddress,Geometry等等高级类型,今天来分析一下这些好玩的数据类型。整数类型tinyint,smallint,integer,bigint是几种整数类型,但是跟通常的数据库不一样的是,Presto里面的数据都是signed类型,下面是这些数据类型的一个基本信息:类型类型S
ES6 系列之 Babel 是如何编译 Class 的(上)
前言在了解Babel是如何编译class前,我们先看看ES6的class和ES5的构造函数是如何对应的。毕竟,ES6的class可以看作一个语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。constructorES6中:classPerson{constructor(name){this.name=name;}sayHello
基本概念
1同步和异步同步和异步关注的是消息通信机制所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。就是由调用者主动等待这个调用的结果。而异步则是相反,调用在发出之后,这个调用就会立即返回,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在调用发出后,被调用者通过状态、通知来通知调用者,或通过回调函数处理这个调用。举个通俗的例子:你打电话问书店老板有没有
JavaScript学习笔记023-对象方法0包装对象0静态属性
Author:Mr.柳上原付出不亚于任何的努力愿我们所有的努力,都不会被生活辜负不忘初心,方得始终时间过得真快转瞬即逝曾经以为过不去的坎现在都快要遗忘了岁月是把杀猪刀果然如此前端也学了大半年了距离node结课近在咫尺又是一期课程毕业在即愿我们所有的努力都不会被生活辜负 前端59期学员作业 /*内部样式表*/ /*对象方法:object*/// 比较值是否相等Object.is(1, "1
设计模式之状态模式(State)
概述状态模式中的行为是由状态决定的,不同的状态有不同的行为,状态模式把对象的行为包装在不同的具体状态对象里,每一个状态对象都有一个共同的抽象状态基类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了基类。使用场景当一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为。代码中含有大量与对象状态
上班族如何提升挣钱的效率
几乎大部分上班族都在苦恼一个问题——钱总是不够花,所以大部分人都想挣更多的钱。于是很多人会选择加班、兼职、接私活、搞副业这些常见的方式来增加收入。但实际上,这些做法,其实都是错的!正确的方式是:提升挣钱的效率。提升挣钱的效率,正是今天的主题。我们会从以下三个方面展开讨论:什么是挣钱效率提升挣钱效率的秘诀——把自己变成稀缺资源放大挣钱效率的秘诀——一份时间N次销售我们先来了解挣钱效率。挣钱效率小安2
关于js回调方法及递归时的使用
js中递归调用本身可以这样:function a1(n){ a1(n)}但是如果需要在参数n进行自增的情况下判断会出错:function a1(n){ if(n>10) return 'aaa'; n++; a1(n)}此时执行a1(1)时得到的结果只能是 ‘undefined’经过一番研究发现想到得到正确的结果‘aaa’则需要这样function a1(n){ if(n
抽象类的成员特点 学习笔记
A:抽象类的成员特点a:成员变量:既可以是变量,也可以是常量。abstract是否可以修饰成员变量?不能修饰成员变量b:构造方法:有。用于子类访问父类数据的初始化。c:成员方法:既可以是抽象的,也可以是非抽象的。B:案例演示抽象类的成员特点C:抽象类的成员方法特性:a:抽象方法强制要求子类做的事情。b:非抽象方法子类继承的事情,提高代码复用性。class Demo2_Abstract { p