-
Sprinig Boot + Redis 实现接口幂等性,写得太好了
一、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次 比如:订单接口, 不能多次创建订单支付接口, 重复支付同一笔订单只能扣一次钱支付宝回调接口, 可能会多次回调, 必须处理重复回调普通表单提交接口, 因为网络超时等原因多次点击提交, 只能成功一次 等等二、常见解决方案唯一索引 -- 防止新增脏数据token机制 -- 防止页面重复提交悲观锁...
-
ES6的20个问题,你都会吗?
一、问:ES6是什么,为什么要学习它,不学习ES6会怎么样?答: ES6是新一代的JS语言标准,对分JS语言核心内容做了升级优化,规范了JS使用标准,新增了JS原生方法,使得JS使用更加规范,更加优雅,更适合大型应用的开发。学习ES6是成为专业前端正规军的必经之路。不学习ES6也可以写代码打鬼子,但是最多只能当个游击队长。二、问:ES5、ES6和ES2015有什么区别?答: E...
-
绝了!Dataway让SpringBoot不在需要Controller、Service、DAO等了
Dataway介绍Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具。使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布。一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 http 端口,应用无需单独为 Dataway 开辟新的管理端口。这种内嵌集成...
-
JavaScript数组常用方法
1、数组去重function removeRepeat(arr){ var newArr = []; for(var i = 0; i < arr.length; i++){ if(newArr.indexOf(arr[i])==-1){ newArr.push(arr[i]); } } retur...
-
了解数据库类型及MySQL数据库常用命令行
一、数据库1、数据库DataBase(DB):存储数据的仓库。2、数据库的分类(1) 关系型数据库(sql数据库):中型:mysql(端口号3306)、sql server大型:Oracle(端口号1521)(2) 非关系型数据库(no-sql数据库)MongoDB、Redis3、mysql软件:Sql yog:数据库客户端工具(图形用户界面工具)方便操作数据库。类似的工具:N...
-
Java如何在运行时动态加载Jar
导读:在实际项目开发中,有时会遇到需动态加载jar包的应用场景。如将Flink的UDF自定义方法制作成方法库(既打成一个Jar),在提交给Flink集群的Job中动态加载jar便可使用。下面将举一个简单实现Java动态加载Jar的例子。环境准备动态加载Jar实现解析与拓展环境准备为了便于实现Demo,这里构建一个模块化Maven项目dynamicloading,项目包含:dyn...
-
Linux技巧:cp命令自动创建不存在的目录和只复制修改的文件
本篇文章介绍使用 Linux 的 cp 命令时,创建不存在的目录和只复制修改过的文件的方法。复制时自动创建不存在的子目录在 Linux 中,可以使用 cp 命令的 --path 选项指定在复制的时候自动创建不存在的子目录。例如执行下面的命令:$ cp --path java/com/server/Service.java target/如果 target 目录下不存在 java...
-
SpringBoot2.0 整合 SpringSecurity 框架,实现用户权限安全管理
一、Security简介1、基础概念Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring的IOC,DI,AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为安全控制编写大量重复代码的工作。2、核心API解读1)、...
-
Javascript运行机制深入
浏览器内核(渲染进程)浏览器的渲染进程是多线程的!包含了哪些线程(列举一些主要常驻线程):GUI渲染线程负责渲染浏览器界面,解析HTML,CSS,构建DOM树和RenderObject树,布局和绘制等。当界面需要重绘(Repaint)或由于某种操作引发回流(reflow)时,该线程就会执行注意,GUI渲染线程与JS引擎线程是互斥的,当JS引擎执行时GUI线程会被挂起(相当于被冻...
-
很用心的为你写了 9 道 MySQL 面试题
MySQL 一直是本人很薄弱的部分,后面会多输出 MySQL 的文章贡献给大家,毕竟 MySQL 涉及到数据存储、锁、磁盘寻道、分页等操作系统概念,而且互联网对 MySQL 的注重程度是不言而喻的,后面要加紧对 MySQL 的研究。写的如果不好,还请大家见谅。非关系型数据库和关系型数据库区别,优势比较非关系型数据库(感觉翻译不是很准确)称为 NoSQL,也就是 Not Only...
-
一份完整的 MySQL 开发规范,进大厂必看
一、数据库命令规范1、所有数据库对象名称必须使用小写字母并用下划线分割2、所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)3、数据库对象的命名要能做到见名识意,并且最后不要超过32个字符4、临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀5、所有存储相同数据的列名和列类型必须一致(...
-
Vue 3.0 Beta 版本发布,你还学的动么?
技术编辑:徐九丨发自 北京SegmentFault 思否报道丨公众号:SegmentFault不知道是不是巧合,尤大又在凌晨发布了 Vue 的最新动态。等了这么久,Vue 3.0 终于发布了 beta 版本,尤大之前曾强调过 Vue 3.0 包含了五个关键变化:1.速度 2.体积 3.可维护性 4.面向原生 5.易用性。这次看来已经优化的差不多了。尤雨溪和 Vue尤雨溪尤大目前...
-
史上最强大的 CSS 布局方案学习笔记
网格布局(Grid)是最强大的 CSS 布局方案。它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局。以前,只能通过复杂的 CSS 框架达到的效果,现在浏览器内置了。上图这样的布局,就是 Grid 布局的拿手好戏。Grid 布局与 Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。Flex 布局是轴线布局,只能指定"项目...
-
数据库里账号的密码,需要怎样安全的存放?
最早在大学的时候,只知道用 MD5 来存用户的账号的密码,但其实这非常不安全,而所用到的哈希函数,深入挖掘,也发现并不简单……一、普通的 Hash 函数哈希(散列)函数是什么就不赘述了。1、不推荐#RC4, MD4, MD5, SHA-0, SHA-1, DES, 2DES 等2、推荐#SHA-2(SHA-256, SHA-384, SHA-512)、SHA-3、Blake2 ...
-
MySql:阿里云Yum安装MySql 8.0,并配置用户及权限,极简操作!
这是一篇结合官网文档,实际操作的图文笔记Yum命令 安装MySql下载MySql Yum存储库,选择对应的版本(以Centos 7 为例 选择EL7的)以wget命令为例(在local下新建一个mysql文件夹,将rpm文件下载到该路径下)#进入local文件夹cd /usr/local/#创建mysql文件夹(下载到其他地方也可以,下载到这里是为了方便管理)mkdir mys...
-
Mysql -乐观锁和悲观锁
悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中, 将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了 加锁机制,也无法保证外部系统不会修改数据)。使用场景举例:以MySQL I...
-
可用于浏览器Web应用的终端组件——Xterm.js
介绍Xterm.js是一个用TypeScript编写的前端组件,它允许应用程序在浏览器中为用户提供功能齐全的终端。它被VS Code,Hyper和Theia等热门项目所使用。Github(7k stars)https://github.com/xtermjs/xterm.js组件特性终端应用程序正常工作:Xterm.js适用于大多数终端应用程序,如bash,vim和tmux,这...
-
Vue前端开发规范
基于Vue官方风格指南整理一、强制1. 组件名为多个单词组件名应该始终是多个单词的,根组件 App 除外。正例:export default { name: 'TodoItem', // ...}复制代码反例:export default { name: 'Todo', // ...}复制代码2. 组件数据组件的 data 必须是一个函数。当在组件中使用 data 属性的时候 ...
-
JVM性能调优的6大步骤,及关键调优参数详解
一、JVM内存调优对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。1.Full GC会对整个堆进行整理,包括Young、Tenured和Perm。Full GC因为需要对整个堆进行回收,所以比较慢,因此应该尽可能减少Full GC的次数。2.导致Full GC的原因1)年老代(Tenured)被写满调优时尽量让对象在新生代GC时被回收、让对象在新生代...
-
你是否听说过 HashMap 在多线程环境下操作可能会导致程序死循环
关于 HashMap,以前只知道它是非线程安全,在多线程环境下操作可能会导致程序死循环,CPU直接飙到100%的线上故障,还真是第一次听说……01、问题描述经常有些面试官会问,是否了解过 HashMap 在多线程环境下使用时可能会发生死循环,导致服务器 cpu 100% 的线上故障?关于这个问题,很多年前,在淘宝内网里就有很多的程序员发过这种帖子说一个CPU 被100%了,原因...
-
JS的艺术,前端异常捕获技术大全。
前端异常捕获,技术大纲可疑区域增加 try...catch全局监控JS异常: window.onerror全局监控静态资源异常: window.addEventListener全局捕获没有 catch 的 promise 异常:unhandledrejectioniframe 异常:window.errorVUE errorHandler 和 React componentDi...
-
全新IDEA 2020.1体验!Java开发首席生产力担当
就在前几天,Java软件开发神器 IDEA 2020.1 新版发布了:我第一时间在机子上更新并体验了几天,感觉还是有点香的!怎么硕呢,体验完新特性之后,不由的感叹一句:IDEA现在真的是越来越智能,越来越懂开发者了。UI/界面升级1、界面支持中文了汉化后的效果就是这个憨样子:各花入各眼,好坏就不做评判了,可以根据自己的喜好来调节。必须要说的是,这个中文汉化不是软件原生支持,而是...
-
发现 Mybatis plus的牛逼,解决单表操作!
mybatis plusMyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。以前我们使用mybatis的时候,我们会使用MyBatis Generator优先生成单表的增删改查操作,但当修改字段删除字段的时候,是个痛苦的事情,要修改xml的很多地方。为了解决这个问题,开源市场上出现了很...
-
nodejs和npm 安装升级
一、安装nodejs和npmyum -y install nodejs npm1、先安装模块nnpm install n -g2、将 node 升级到最新稳定版n stable cp /usr/local/n/versions/node/版本/bin/node /usr/bin/cp /usr/local/n/versions/node/版本/bin/node /usr/loc...
-
Java Spring: 解决Failed to configure a DataSource问题
问题现在我们有一个Spring Boot项目,然后在`build.gradle`中加入了`spring-boot-starter-jdbc`依赖。dependencies { implementation 'org.springframework.boot:spring-boot-starter-jdbc'}但是,当我们运行程序的会遇到这个错误:Description:F...
-
单点登录(Single Sign On)解决方案
需求多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。A 网站和 B 网站是同一家公司的关联服务。现在要求,用户只要在其中一个网站登录,再访问另一个网站就会自动登录,请问怎么实现?涉及到的关键点:这里就涉及到了 跨域认证 以及 前端页面 JavaScript 跨域 问题。一、跨域认证问题互联网服务离不开用户认证。一般流程是下面这样。用户向服务器发送账户和密码服...
-
Rider 2020.1 发布,要抢VS饭碗啦!
Rider 最新变化在 macOS 和 Linux 上,Rider 2020.1 现在默认在 .NET Core 运行时上运行后端,并提供 Xamarin Hot Reload 和 Dynamic Program Analysis。 它引入了一种简单的方法来配置编辑器的严重性,并增加了对整数值的数据流分析以及更快的代码补全速度。 Debug 窗口已经过重新设计,并且 Extra...
-
PHP使用反向Ajax技术实现在线客服系统
反向Ajax技术,又称为服务器推技术,server push等。一般用于“在线客服”、“消息推送”、“即时通信”等功能中,比如新浪微博的私信功能,就是客户端不断的请求服务器并创建连接,去查看服务器有没有返回的信息,建立连接比较浪费服务器资源,下面我将根据客户端创建连接的不同性来介绍一下实现反向Ajax的三种思路。三种思路:1、间隔固定时间创建连接这种方式就是按照固定时间不断的去...
-
企业信息化建设基础之——统一身份认证管理平台
一、背景随着企业信息化的不断深入,企业增添了很多的管理系统来完善自身信息化发展的需求。同时也面临着身份信息孤岛带来的越来越多的困扰。 企业信息化管理系统存在的问题:重复登录、多套用户名/密码、用户管理不规范、存在安全隐患二、解决出路 —> 统一身份认证1、大幅简化用户登录过程,显著提高效率2、减轻用户管理工作,统一用户管理3、实现高安全身份认证和管理,提升企业信息安全水平...
-
Windows中CMD最全命令行
CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本)CMD命令锦集 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS 服务器是否能正确实现域名解析的命 令行工具。 它在 Windows NT/200...