-
JavaScript最受欢迎日历组件FullCalendar
简要介绍FullCalendar是一款JavaScript用于展示日历的组件。它在github上有13.1k颗星,足见其受欢迎的程度。它支持100多种的自定义设置,可以设置不同的视图、主题、事件等等。目前支持与主流的React、Vue、Angular框架的集成。最新版本:v5.4.0。我对它的评价是:单品类爆款。Github地址https://github.com/fullca...
-
MySQL模式开发设计规范问题与建议
1.时间类型的数据默认值是否可以为null?根据反馈,时间类型的数据默认值往往在业务上无法赋予一个确定的值,而”1970-01-01“、”0000-01-01“等等的默认值在开发过程中会增加判断工作,经过新版MYSQL(版本号8.0.19)测试,为null的数据可以走索引,故开放时间类型的数据默认值的限制。* 补充不建议为Null的技术观点:老版本MYSQL在对null值的判断...
-
SpringBoot中如何灵活的实现接口数据的加解密功能?
数据是企业的第四张名片,企业级开发中少不了数据的加密传输,所以本文介绍下SpringBoot中接口数据加密、解密的方式。一、加密方案介绍二、实现原理三、实战四、测试五、踩到的坑一、加密方案介绍对接口的加密解密操作主要有下面两种方式:1.自定义消息转换器优势:仅需实现接口,配置简单。劣势:仅能对同一类型的MediaType进行加解密操作,不灵活。2.使用spring提供的接口Re...
-
Swagger3.0官方starter诞生了
Swagger是研发的好帮手,可以减少前后端的很多沟通成本。甚至在一些比较高级的公司,还能减少和测试人员的沟通成本。所以只要一个项目采用了SpringBoot框架,Swagger几乎是必选的组件。可惜的是,Swagger只是一个工具。集成的时候,需要修改pom文件,增加两个jar包。还要做配置,运气不好的项目还需要修改WebMvcConfigurer中的内容。在SpringBo...
-
SuperPuTTY使用说明
最近在找SecureCRT替代软件,在试用了几个开源软件之后,最终选择了SuperPuTTY,目前基本满足使用,当然无法使用VBS是硬伤。此软件是准备开发自己的脚本引擎,目前只有一些简单功能,但实现自动登录功能是没有问题的。在此把设置写下来备忘。superPuTTY设置说明By Simon Zhan注:使用SuperPuTTY,需要配套先安装PuTTY,SuperPuTTY的核...
-
一万字详解 Redis Cluster Gossip 协议
大家好,我是历小冰,今天来讲一下 Reids Cluster 的 Gossip 协议和集群操作,文章的思维导图如下所示。集群模式和 Gossip 简介对于数据存储领域,当数据量或者请求流量大到一定程度后,就必然会引入分布式。比如 Redis,虽然其单机性能十分优秀,但是因为下列原因时,也不得不引入集群。单机无法保证高可用,需要引入多实例来提供高可用性单机能够提供高达 8W 左右...
-
物联网关键技术:如何实现设备接入
物联网云平台设备接入、规则引擎、实时计算、数据存储都是物联网云平台的关键技术,其中设备接入组件(IoT Hub)是物联网云平台的核心。物联网云平台架构(简化示意图)物联网云平台需要支持多网络多协议设备的接入,关键是解决物联网协议的碎片化问题,IP协议可以有效解决链路层以下的协议多样性,但更多要考虑支持面向各种场景的应用层协议。常见物联网应用层协议物联网常用的应用层数据传输协议包...
-
微服务网关——设计篇
在《微服务网关——需求篇》中,我们讨论了微服务网关的需求,本文将对微服务网关进行设计。考虑到实际情况的差异,这里实际给出的是设计选项,最终设计基于实际场景来确定。网关功能性设计路由一般情况下,服务对外提供的是RESTful接口,所以一般路由模块根据请求的host, url等规则转发到指定的服务。考虑到路由规则需要频繁的修改发布,为了发布的便利性,考虑针对规则实现热发布。有几种实...
-
带你扒一扒 MySQL 的数据在我们磁盘上到底长什么样子
前言在之前《大师,我悟了:为什么 MySQL 索引要用 B+tree ,而且还这么快?》一文中我从索引的各种数据结构和大家聊到了 MySQL 底层索引的数据结构 B+tree 和工作原理。里面多处提到了找数据是在我们电脑的磁盘上找,今天就来说一说 MySQL 中的数据在磁盘上,它到底是如何进行存储的?存储引擎MySQL 中的数据用各种不同的技术存储在文件(或者内存)中,这些不同...
-
浅谈web网站架构演变过程
前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。 该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理阶段一、单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如tomcat、jetty、jboos,然后直接使用JSP/servlet技术,或者使用一些开...
-
Spring @Async 使用
开启异步支持@Configuration @EnableAsync public class SpringAsyncConfig { ... } 默认情况下,@EnableAsync检测Spring的@Async注释和EJB 3.1 javax. EJB .异步;此选项还可用于检测其他用户定义的注释类型。@Async注解使用无返回值@Async public void asyn...
-
消息中间件RocketMQ
RocketMQ的前世今生RocketMQ是一款阿里巴巴开源的消息中间件,在2017年9月份成为Apache的顶级项目,是国内首个互联网中间件在 Apache 上的顶级项目。RocketMQ的起源受到另一款消息中间件Kafka的启发。最初,淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容。为了进一步降低成本和提升写入性...
-
你的平台有这四大技术架构群吗?
云平台、数字化平台、中台、第三方平台……围绕着数字化、智能化,市场上一下子冒出很多平台。中国软件网、海比研究在近年来对企业、尤其是大型企业的数字化发展状况调查发现,为企业数字化选择一个合适的底座平台,是众多企业的一个刚需。但他们面临的一个普遍问题是:市场上的平台,实在太多了。到底什么才是真平台?谁才是适合自己的数字化平台?“云时代的数字化平台,非常复杂,轻易不好分辨谁优谁差。”...
-
SpringBoot中的定时任务的同步与异步你确定真的知道?
定时任务调度功能在我们的开发中是非常常见的,随便举几个例子:定时清除一些过期的数据,定时发送邮件等等,实现定时任务调度的方式也十分多样,本篇文章主要学习各种实现定时任务调度方式的优缺点,以便为日后选择的时候提供一定的参考。本篇要点介绍Timer实现定时任务。介绍ScheduledExecutorService实现定时任务。介绍SpringBoot使用SpringTask实现定时...
-
清除Excel工作表密码,2步就能解除
有时候为了防止他人改动数据,灵机一动,给Excel工作表来个加密,结果时间一长,发现加密一时爽,忘记密码悔断肠,表格还是那个表格,但密码就不知道是哪个密码了!密码不记得的结果就是,表格不能编辑,数据又无法复制,难道就没有什么办法能够解除密码了吗?今天就和大家分享如何清除Excel工作表密码,2步就能解除!第一步、更改文件后缀1、首先右键需要解除密码的Excel表格,点击【重命名...
-
springboot 排除自动配置的 4 种方法
Spring Boot 提供的自动配置非常强大,某些情况下,自动配置的功能可能不符合我们的需求,需要我们自定义配置,这个时候就需要排除/禁用 Spring Boot 某些类的自动化配置了。比如:数据源、邮件,这些都是提供了自动配置的,我们需要排除 Spring Boot 的自动化配置,交给我们自己来自定义,该如何做呢?今天栈长给你介绍 4 种排除方式,总有一种能帮到你!方法1使...
-
从零开始搭建Kafka+SpringBoot分布式消息系统
前言由于kafka强依赖于zookeeper,所以需先搭建好zookeeper集群。由于zookeeper是由java编写的,需运行在jvm上,所以首先应具备java环境。(ps:默认您的centos系统可联网,本教程就不教配置ip什么的了)(ps2:没有wget的先装一下:yum install wget)(ps3:人啊,就是要条理。东边放一点,西边放一点,过段时间就不知道自...
-
Nginx的这些安全设置,你都知道吗?
Nginx 是最流行的 Web 服务器,可以只占用 2.5 MB 的内存,却可以轻松处理 1w 的 http 请求。做为网站的入口,Nginx 的安全设置重要性不言而喻。下面带你一起去认识一下这些安全配置吧!nginx.conf是 Nginx 最主要的配置文件,大部分的安全配置都在这个文件上进行。禁用不需要的 Nginx 模块自动安装的 Nginx 会内置很多模块,并不是所有的...
-
Elasticsearch不会DSL没事,来试试SQL吧
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例,最常见的是作为搜索引擎,提供项目中全文搜索。一提到Elasticsearch,必然需要提到Query DSL,DSL(Domain Specific Language特定领域语言)以JSON请求体的形式,但DSL语法并没有那么直观,如果不经常使用,就会遗忘,等需要用...
-
springboot中定时任务执行Quartz的使用
环境:springboot2.2.11.RELEASE2种方式执行定时任务1、通过springboot的方式2、使用Quartz实现定时任务方式一:通过springboot的定时任务1、开启定时任务功能@EnableScheduling@SpringBootApplication @EnableScheduling public class SpringBootQuartzSc...
-
教你分分钟搞定Linux下yum源配置
Linux操作系统对于我们技术人员,不管是开发,测试还是运维都应该是耳熟能详的一个操作系统。既然如此,那么就绕不开在Linux操作系统下安装软件包。在Linux下安装软件包的方式有三种,分别是rpm安装、源码编译安装、yum安装。接下来我们就重点介绍一下最常用、最好用的一种安装方式,即yum方式安装,因为它能够帮助我们解决软件包之间的依赖关系来提高工作效率哦。一、yum知多少1...
-
架构设计--配置信息管理
0. 配置信息配置信息特指程序启动时对程序进行配置的信息,常见的如服务端口、数据库连接信息、线程池信息等。在系统启动时,程序会通过不同的配置方案,主动获取配置信息,以完成系统的初始化工作。因此,配置信息的管理是一件非常重要的事情。您的配置信息是怎么管理的呢?让我们一起见证下配置信息管理的不同方案。1. 将配置信息写死在业务代码中在业务代码中写死配置信息绝对是大部分新手常干的事情...
-
Spring Boot Admin快速打造监控平台
使用过Spring boot的开发者都知道actuator,它是Springboot提供的用来对应用系统进行自省和监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。但比较遗憾的是没有可视化界面,只能通过干燥的json数据来查看相应的指标,如下图:今天我们介绍一个可视化的监控指标平台Spring Boot Admin,它利用sprin...
-
优秀的Web图片预览+图片裁剪插件,分享给需要的开发者
介绍Viewer.js 是一款强大的图片预览查看器,之前在做项目的时候遇到的是无法给网页中的图片添加一个强大的预览功能,而Viewer.js刚好满足了我的需求。本文就简单的介绍一下这样一个神奇的图片预览插件:Github//原生版本 https://github.com/fengyuanchen/viewerjs //jquery版本 https://github.com/f...
-
Java高级特性——注解:注解实现Excel导出功能
注解是 Java 的一个高级特性,Spring 更是以注解为基础,发展出一套“注解驱动编程”。这听起来高大上,但毕竟是框架的事,我们也能用好注解吗?的确,我们很少有机会自己写注解,导致我们搞不清楚注解是怎么回事,更别提用好注解了。既然这样,我们就从具体的工作出发,开发一个 Excel 导出功能。我相信,你在搞懂这个例子后,就能明白注解是怎么个用法。Excel 导出-需求拆解在后...
-
偶遇MySQL 的JSON字段内容检索,灵活存储也需有度
前言最近公司在做一项用户数据调查,需要统计某个值得使用频率,由于之前这个值是以一个JSON字符串形式存储的,所以不能直接用传统的方式匹配,幸亏现在数据库才做了升级版本到了5.7以后(支持JSON查询),要是放在以前,只有模糊匹配了。分析查看涉及到的字段是一个JSON对象数组类型,匹配的条件是用到对象的某一个字段,自然而然的想到了JSON_CONTAINS 函数来解决。selec...
-
新版IntelliJ IDEA让人眼前一亮,内存占用有所好转
IntelliJ IDEA 2020.3 EAP 3 发布IntelliJ IDEA 2020.3 的第三个体验版本现已发布,我们来看下这个版本主要更新内容有什么呢:现在,用户可以为每个项目启用插件。根据自己的需要进行配置为只读文件和来自外部库的文件实现了 Reader Mode (设置路径 Settings / Editor / Reader Mode.)用户现在可以轻松打开...
-
Elasticsearch 7.10.0发布
日前Elastic发布了Elasticsearch 7.10.0。该版本基于Apache Lucene 8.7.0开发,支持在Elasticsearch 在线弹性云和自建实例使用,有关该版本的功能,请和虫虫一起学习。可搜索的快照可存储更多内容大数据流行的几天,企业数据都每天都以指数级的速率增长。尤其是日志和监控数据(例如日志,指标,跟踪和安全事件)。很多企业都在用Elastic...
-
手写一个注解实现接口单位时间内的访问频率的拦截器
目标相信大家都听过接口安全,接口限流等这些词语,那么本篇文章就是从最基本的问题开始,带大家手写一个控制接口单位时间内访问频率的demo。好了,下面开始上代码。环境+依赖spring boot工程就不在此搭建了,小编直接贴出核心依赖 <dependency> <groupId>org.springframework.boot</groupId&...
-
php8正式发布了,
PHP8包含了许多新功能和优化,性能得到了进一步的提升,具体可参考官方原文介绍如下:Named arguments RFCPHP 7htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, 'UTF-8', false);PHP 8htmlspecialchars($string, double_encode: false);Spe...