自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1213)
  • 收藏
  • 关注

原创 凡客2-【redis】-- 数据结构及底层编码篇

String bitmaps也是“字符串” 使用场景 缓存 计数 共享Session 限速(限流) Hash 使用场景 缓存用户信息(多属性) List 使用场景 关注列表 粉丝列表 消息列表 场景使用口诀: lpush+lpop=Stack(栈) lpush+rpop=Queue(队列) lpsh+ltrim=Capped Collection(有限集合) lpush+brpop=Message

2021-01-05 14:59:27 642

原创 凡客网推荐的第一篇-【Azure Cloud Services】云服务频繁发生服务器崩溃的排查方案

云服务(Cloud Services)在使用期间,频繁发生崩溃事件,在崩溃期间,查看CPU负载为100%,而且同时伴随以下情况:部署在云服务上的应用无法访问 远程连接云服务实例(RDP)访问黑屏,无法加载或Busy状态排查方案在问题的关键点中,CPU负载达到了100%。所以首先需要排查如下几点:当前云服务是单实例还是多实例? 实例的机型是小还是大?是什么型号的机器呢? 实例中运行的服务是不是非常耗费CPU? CPU出现满负载的情况是否有时间规律? 部署在云服务上的应用请求量是否与..

2021-01-05 13:23:26 1106

原创 为什么需要 WebSocket 协议

  最近在把 Facebook Message 接入客服系统,由于与 Facebook Message 对接的收发消息都是通过调用 http 接口来实现的,如果想实现即时通讯,还需要在中间加一个 WebSocket 来转发消息。如下图:    转存失败重新上传取消    其中用到了 WebSocket 协议和 IO多路复用相关的知识。在这里做一个学习记录。    为什么需要 WebSocket 协议    因为 HTTP 协议有一个缺陷:通信只能先由客户端发起,然后服务器再作出响应,并不能由

2021-01-04 13:28:25 965

原创 火影推荐程序连载82-80%的学校还在给新生上C语言,它们OUT了吗?

大家好,最近有小伙伴在后台问我,大一新生学校在教C语言,是不是已经过时了?第一门语言应该学什么比较好?大学期间什么课程对于毕业之后的从业帮助比较大呢?今天这篇文章就和大家简单聊聊这个问题。关于我最后给大家讲讲我自己的一些情况吧,掐指一算才发现,从我初学编程至今已经超过十年了。我是高中的时候学习编程的,那时候我们学的是Pascal。大家没听说过是很正常的,这是一门非常古老的语言。这门语言古老到什么程度呢?古老到它的IDE都是蓝屏的,看起来就像是死机了一样。大概长这样,当时我们在机房里写代码的时

2020-12-30 10:51:07 197

原创 火影推荐程序连载81-Redis不仅仅是缓存,还是……

一段时间以来,巨大数量的数据处理迫使所有的应用程序在数据库层前添加缓存策略。即使经典数据库进行了大量的下划线优化,仍然不能提供足够的速度和可用性。主要原因在于数据存储越远,获取数据就越困难。另一个原因是因为数据库中的数据通常保存在磁盘中,而不是在内存。经典数据库却是在内存上嵌入了缓存来优化,但是拥有一个专用的独立缓存也是一种很常用的策略。在解决访问数据库的性能问题,通常的解决方案是缓存。缓存并不新鲜,缓存实际上是把经常访问的少量数据保存在离你更近的地方。我们在处理器上有缓存,数据库中也有缓存,你甚至可以

2020-12-26 09:49:09 194

原创 火影推荐程序连载80-监控的层次

个服务的监控从整体考虑,要达到哪些才能算是完善的?我想,如果没有一个全局性的监控思考,一个服务的监控即使加的再多也是会有监控盲区的。监控的层次从基础机器到上层业务,分为三个不同层次:系统,应用,业务。不同的层次都应该有其不同的监控目的。系统监控这个层次监控服务所在服务器的可用性。服务器的各项基本指标是否正常。包括服务器的CPU,服务器的磁盘,服务器的内存等。有的服务器会进行服务混布,这种监控更为重要。因为其他服务导致的服务器问题只能通过系统监控层面得到反馈。操作系统层面的监控也是最为

2020-12-24 10:10:34 137 1

原创 火影推荐程序连载79-带宽、延时、吞吐率、PPS 这些都是啥?

Linux 网络协议栈是根据 TCP/IP 模型来实现的,TCP/IP 模型由应用层、传输层、网络层和网络接口层,共四层组成,每一层都有各自的职责。应用程序要发送数据包时,通常是通过 socket 接口,http://www.jintianxuesha.com/?cate=3于是就会发生系统调用,把应用层的数据拷贝到内核里的 socket 层,接着由网络协议栈从上到下逐层处理后,最后才会送到网卡发送出去。而对于接收网络包时,同样也要经过网络协议逐层处理,不过处理的方向与发送数据时是相反的,也就是

2020-12-15 15:15:53 259

原创 火影推荐程序连载78-Netty源码解析 -- PoolChunk实现原理

本文主要分享Netty中PoolChunk如何管理内存。源码分析基于Netty 4.1.52内存管理算法首先说明PoolChunk内存组织方式。PoolChunk的内存大小默认是16M,Netty将它划分为2048个page,每个page为8K。PoolChunk上可以分配Normal内存块。Normal内存块大小必须是page的倍数。PoolChunk通过runsAvail字段管理内存块。PoolChunk#runsAvail是PriorityQueue数组,其中PriorityQue

2020-12-06 15:10:41 138

原创 为什么我的搜索 *foo-bar* 无法匹配 foo-bar ?

先自上而下,后自底向上的介绍ElasticSearch的底层工作原理,试图回答以下问题: 为什么我的搜索*foo-bar*无法匹配foo-bar? 为什么增加更多的文件会压缩索引(Index)? 为什么ElasticSearch占用很多内存? 版本elasticsearch版本: elasticsearch-2.2.0内容图解ElasticSearch云上的集群集群里的盒子云里面的每个白色正方形的盒子代表一个节点——Node。节点之间...

2020-12-02 14:09:47 159

原创 火影推荐程序连载78-Mybatis学习-初步认知与使用

为什么需要Mybatis:方便;传统的JDBC代码太复杂了,简化程序员编写与数据库实现交互的代码的过程优点:简单易学 灵活 SQL与代码分离,提高了可维护性 提供映射标签,支持对象与数据库的ORM字段关系映射 提供对象关系映射标签,支持对象关系组件维护 提供XML标签,支持编写动态SQL1|0第一个Mybatis程序搭建数据库CREATE TABLE user ( id INT(20) NOT NULL, name VARCHAR(30) DEFAULT NULL, p.

2020-11-30 12:57:07 127

原创 IPv6 Rapid Deployment, IPv6 6rd初探

一、你将会学到什么?IPv6 rapid deployment(6rd)(RFC 5969)是一种无状态隧道机制,它允许一个服务商在不要求升级已存在的IPv4接入网络基础设施的情况下,轻巧安全的快速部署IPv6。当然这里有一系列方法通过IPv4来承载IPv6,6rd的方式尤其成功,其主要在于他的实施是一个轻巧、自然地可扩展、有弹性且易于配置的无感知模式。6rd提供的服务是生产质量,使得所有的客户和整个Internet看起似乎是原生的本地IPv6网络。本文提出: 6rd技术描述 6rd部署场景

2020-11-28 22:08:27 698

原创 如果让你写个分布式配置中心,就问你慌不慌

一位读者朋友跟我反馈,能不能写一篇比较全的配置中心的文章。自己最近在面试过程中有被面试官问:如何设计一个配置中心?这个话题,由于自己在工作中也没实际使用过配置中心,所以对于如何去设计是完全没有概念的。今天就给大家写一篇去配置中心需要考虑的点,我也不是什么配置中心开源项目的参与者,所以写出来的仅供大家参考。有必要重复造轮子吗?当面试官问你:如果让你写一个配置中心,说说你的设计思路?首先我们要有自己的想法,虽然是在面试过程中的问题。我们也可以反问,市面上目前有几款很优秀的开源的配置中心,我们可以..

2020-11-27 13:18:09 204

原创 循序渐进VUE+Element 前端应用开发(29)--- 高级查询条件的界面设计

在系统模块中的业务列表展示里面,一般我们都会在列表中放置一些查询条件,如果是表字段不多,大多数情况下,放置的条件有十个八个就可以了,如果是字段很多,而这些条件信息也很关键的时候,就可能放置很多条件,但是界面空间比较有限,而常规的查询一般就那么几个常用条件,如果每次都占用很多版面,好像不是很合理和友好。本篇随笔探讨Vue+Element前端界面中处理高级查询模块的界面设计,提供了两种处理的思路供参考借鉴。1、弹出框的高级查询条件的界面设计如常规的列表界面如下所示。单击【高级查询】弹出一个新对.

2020-11-25 20:40:25 1269

原创 “三剑客“之awk心中无剑

awk 是一种程序语言. 它具有一般程序语言常见的功能.  因awk语言具有某些特点, 如 : 使用直译器(Interpreter)不需先行编译; 变量无类型之分(Typeless), 可使用文字当数组的下标(Associative Array)...等特色. 因此, 使用awk撰写程序比起使用其它语言更简洁便利且节省时间. awk还具有一些内建功能, 使得awk擅于处理具数据行(Record), 字段(Field)型态的资料; 此外, awk内建有pipe的功能, 可将处理中的数据传送给外部的 Shel

2020-11-24 20:47:05 224 1

转载 9 record 并非简单属性 POCO 的语法糖

在现代的网站中,我们经常会遇到使用OAuth授权的情况,比如有一个比较小众的网站,需要用户登录,但是直接让用户注册就显得非常麻烦,用户可能因为这个原因而流失,那么该网站可以使用OAuth授权,借助于github或者其他的第三方网站的认证授权,来获取相关的用户信息,从而避免了用户注册的步骤。当然,很可能在第三方网站上授权获得用户信息之后,还需要在本网站填写一些必要的信息进行绑定,比如手机号,用户名等等。但是这比单纯的注册要方便太多了,也容易让用户接受。今天,我们将要讲解一下OAuth 2.0授权框

2020-11-24 10:19:49 116

原创 火影推荐程序连载74-探究:nuget工具对不再使用的dll文件的处理策略

nuget是.net平台有效的包管理工具,相信每个C#开发者对它都不陌生。本文我们来探究一下nuget对不再使用的dll文件的处理策略,分为如下2个场景: 场景A:包A1.0原来包含Newtonsoft.Json.dll,后来更新到包A2.0时不再包含此dll。现在项目中升级包A到2.0,nuget会如何处理Newtonsoft.Json.dll文件? 场景B:包A1.0和包B1.0都包含Newtonsoft.Json.dll,并在项目中同时安装了这2个包。现在卸载包B,nuget会如何

2020-11-23 21:07:09 123

原创 火影推荐程序连76-elasticsearch集群安装+安全验证+kibana安装

启动4个centos容器, 并暴露相对应端口 (我的本机ip为172.16.1.236,以下涉及到的地方需要修改为自己的ip)node_name ip http port transport port es01 docker宿主机ip 9205:9200 9305: 9300 es02 docker宿主机ip 9206:9200 9306: 9300 es03 docker宿主机ip 9207:9200 9307: 930

2020-11-23 12:58:34 458

原创 (题号丢失)校门外的树

某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。输入第一行有两个整数L(1 ≤ L ≤ 1.

2020-11-22 12:53:49 271

原创 火影推荐程序连载75-源码分析:Semaphore之信号量

Semaphore 又名计数信号量,从概念上来讲,信号量初始并维护一定数量的许可证,使用之前先要先获得一个许可,用完之后再释放一个许可。信号量通常用于限制线程的数量来控制访问某些资源,从而达到单机限流的目的,比如SpringCloud 中的Zuul 组件用的是 Hystrix 的信号量(semaphore)隔离模式。源码分析重要的内部类Semaphore 和 ReentrantLock 内部类完全相似, 有3个重要的内部类,分别也是Sync、NonfairSync和FairSync;Syn.

2020-11-21 18:48:16 106

原创 火影推荐程序连载74-结合实战和源码来聊聊Java中的SPI机制?

SPI的概念SPI在Java中的全称为Service Provider Interface,是JDK内置的一种服务提供发现机制,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。JAVA SPI = 基于接口的编程+策略模式+配置文件的动态加载机制SPI的使用场景Java是一种面向对象语言,虽然Java8开始支持函数式编程和Stream,但是总体来说,还是面向对象的语言。在使用Java进行面向对象开发时,一般会推荐使用基于接口的编程,程序的模块与模块

2020-11-20 21:04:50 111

原创 架构设计:微服务模式下,实现灰度发布模式

一、基本逻辑请求通过8001服务,在灰度规则中,会读取下次请求的服务列表,根据版本号参数规则,选中路由的服务。配置版本号,区分灰度版本和默认正常版本;自定义拦截器,管理版本号或其他标识参数在请求中传递;自定义服务选中策略,基于版本标识路由服务;如果灰度服务不存在,则基于规则选中默认服务;二、版本配置在node12-server集群配置两个服务:在8002端口配置版本v7.0.0,在8003端口配置版本v7.0.1,用来测试灰度版本选择。8002服务eureka:

2020-11-20 00:20:31 610

原创 火影推荐程序连载73-接口自动化测试:apiAutoTest使用re 处理数据依赖

目前在工作中写脚本的时候发现了一些之前开源的apiAutoTest的可优化项,后面应该也是会慢慢的继续优化了2020/11/19截止到写这篇文章的时间是,2020/11/19 00:53 现在也是把该项优化了,那优化了什么尼?参数依赖我理解的参数依赖/接口依赖就是接口进行关联操作,比如有些查询接口需要登录之后才可以操作,那么我们就需要拿到token之类的东西,这一部分东西是放到header中的,apiAutoTest围绕的只有路径参数依赖,请求数据依赖 路径参数依赖 譬如说现在的r

2020-11-19 07:15:35 420

原创 火影推荐程序连载72- 线性表的存储结构

今天开始线性表部分的梳理,线性表主要分为了基础概念和基本操作两大部分,由于某些过程或概念比较抽象,我添加了部分图示,希望能够把这些抽象的东西直观的表达出来。基本操作模块重点主要在单链表和顺序表两部分,本文着重梳理了线性表插入、删除、查询等基础方法并搭配了部分实例供参考。1 基本概念对于线性表来说,它是一组相同元素的有限序列,元素的个数就是线性表的长度,当元素个数为 0 时,线性表就是空表。数据结构包括逻辑结构、存储结构和算法。线性表的基本概念这里主要看线性表的逻辑结构和存...

2020-11-18 22:43:26 137

原创 火影推荐程序连载71- 中支持 Websocket/Socket 服务

Kubernetes Ingress 可将集群内部的 Service 通过 HTTP/HTTPS 的方式暴露供外部访问,并通过路径匹配规则定义服务的路由。但是 Ingress 对 TCP/UDP 的服务却支持的不那么好。如果我们服务中有使用 Websocket 或 Socket, 需要暴露给外部访问,在 Kubernetes 中该如何配置呢?大致有两种方式[见参考文档1]:使用 NodePort, 使用节点 IP 与 NodePort 暴露的端口访问 使用 ClusterIp + Ingress

2020-11-17 15:00:04 131

原创 火影推荐程序连载70-Validated和@Valid的不同

在开发中,从表现层到持久化层,数据校验都是一项逻辑差不多,但容易出错的任务,前端框架往往会采取一些检查参数的手段,比如校验并提示信息,那么,既然前端已经存在校验手段,后端的校验是否还有必要,是否多余了呢?并不是,正常情况下,参数确实会经过前端校验传向后端,但如果后端不做校验,一旦通过特殊手段越过前端的检测,系统就会出现安全漏洞。不使用Validator的参数处理逻辑既然是参数校验,很简单呀,用几个if/else直接搞定:@PostMapping("/form") public .

2020-11-16 13:07:37 115

原创 火影推荐程序连载69- 最常用的设计模式

最常用的设计模式1.1 背景如果问你最常用的设计模式是哪种?你可能会说单例模式,工厂模式。但根据我在项目里的经验,一个完整的应用,应该是迭代器模式。1.2 摘要本文不讲怎么去实现迭代器模式,但介绍迭代器模式到底是什么?为什么迭代器循环迭代时,无法删除元素,无法修改元素; 本文讲的迭代器,媒介主要是C#语言下的foreach,微软爸爸已经在C#的foreach中帮我们实现了迭代器代码,关于迭代器,我们只需要知道他是什么,他的特性是什么,为什么要用他? 迭代器有什么优点,有什么缺点? 在.

2020-11-15 18:30:41 107

原创 火影推荐程序连载68-net core集成JWT(基础)

关于JWT的基本概念,如果有不清晰的同学,就不在这里赘述了。接下来聊聊JWT是怎么发挥作用的。第一,安装nuget包Microsoft.AspNetCore.Authentication.JwtBearer第二,配置【Startup】首先是【ConfigureServices】方法,下面要写一大堆进去 services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) ..

2020-11-14 13:47:32 144

原创 火影推荐程序连载98-验证 .NET 5.0 正式版 docker 镜像问题

而在11月10日下午4点左右,由于 CI 服务器磁盘空间用完,我们进行了磁盘清理,删除了 CI 服务器上的所有镜像,清理之前 CI 服务器上 .NET 5.0 镜像版本对应的是 .NET 5.0 RC 2,所以11月10日晚上发布博客站点时,CI 服务器重新下载了镜像,这时正好下载了 .NET 5.0 正式版的 docker 镜像,所以发布时博客系统的镜像是基于 .NET 5.0 正式版(发布时会在CI服务器上生成应用的生产环境镜像)。现在可以进入这2个发布版本的镜像进行验证$ docker

2020-11-13 21:04:16 260

原创 火影推荐程序连载67-Java基础夺命连环16问

说好了面试系列已经完结了,结果发现还是真香,嗯,以为我发现我的Java基础都没写,所以这个就算作续集了,续集第一篇请各位收好。说说进程和线程的区别?进程是程序的一次执行,是系统进行资源分配和调度的独立单位,他的作用是是程序能够并发执行提高资源利用率和吞吐率。由于进程是资源分配和调度的基本单位,因为进程的创建、销毁、切换产生大量的时间和空间的开销,进程的数量不能太多,而线程是比进程更小的能独立运行的基本单位,他是进程的一个实体,可以减少程序并发执行时的时间和空间开销,使得操作系统具有更好的并发性。

2020-11-12 18:32:40 271

原创 火影推荐程序连载66-企业中真实需要的集中管理软件SVN即Subversion版本控制

一、SVN基本概念 SVN是Subversion的简称,是一个自由开源的版本控制系统。 checkout: 把整个项目源码下载到本地 update: 从服务器上更新代码,使本地达到最新版本 commit: 将本地源码提交到服务器 两种存储方式:BDB、FSFS,一般用后者更安全 二、SVN常用操作 浏览仓库:文件夹内右键-->TortoiseSVN-->Repo-brower 下载全部文件: 文件夹右键-->Tortoise

2020-11-11 16:49:33 85

原创 火影推荐程序连载65-Prometheus+node_exporter监控,Grafana无法显示数据的问题

被测linux机器上部署了Grafana,Prometheus,node_exporter,并成功启动了它们。Grafana中已经创建了Prometheus数据源,并测试通过,并且导入了监控面板,将对被测机器的CPU,内存,网络和磁盘进行监控。问题:使用windows机器登录Grafana监控被测的Linux机器,右上角时间调整为最近的12个小时,无数据显示,显示为NA,如下图:分析原因:Prometheus这个时序数据库对时间要求很严格,Linux服务器与Windows监控机.

2020-11-10 16:04:45 847

原创 火影推荐程序连载64-跟我一起学.NetCore之EF Core 实战入门,一看就会

还记得当初学习数据库操作时,用ADO.NET一步一步地进行数据操作及查询,对于查询到的数据还得对其进行解析,然后封装返回给应用层;遇到这种重复而繁琐的工作,总有一些大神或团队对其进行封装,从而出现了很多ORM框架,让小伙伴把更多精力放在业务处理上,同时更多的面向程序对象开发,对工作效率的提升有很大的帮助。目前关于C#出现了很多ORM框架,比较流行的大概有FreeSql (国内)、SqlSugar (国内)、Dapper (国外)、EF/EF Core (国外)、linq2db (国外)等,当然也有一

2020-11-09 13:41:13 122 1

原创 火影推荐程序连载63-分布式文档存储数据库之MongoDB基础入门

 一、MongoDB简介  MongoDB是用c++语言开发的一款易扩展,易伸缩,高性能,开源的,schema free 的基于文档的nosql数据库;所谓nosql是指不仅仅是sql的意思,它拥有部分sql的特性,同时又比sql的性能和扩展要好;所谓schema free指没有太多的约束,我们知道在关系型数据库中有很多约束和范式,在MongoDB中就没有,所以这里的schema free是指这个;mongodb支持海量数据,支持osx,linux,windows,solaris的32位和64位系统,基

2020-11-08 10:26:58 188

原创 火影推荐程序连载62-抽丝剥茧——门面和调停者设计模式

今天我们来聊两个设计模式:调停者设计模式和门面设计模式,为什么要将他们放在一起讲解,因为他们两个东东太像了,仅仅是由于作用的地方不同而产生的不同的叫法。我们用一个对于我们90后最难的一个问题来入手吧。假设我们厌倦了城市生活,想要找一个安静的地方安家,养猪,顺便写一个猪脸识别来分类管理这些猪(梦想中的生活)。而在做这些事情的前提,我们必须建造一个房子和一个猪圈。我们来看一下我们以前会怎么做。盖房子需要工人,砖头,水泥等等,我们需要一个一个联系所需要的人。但我这么聪明当然不会这么干了,所以我找了

2020-11-07 14:26:10 91

原创 火影推荐程序连载61-shp文件转dwg并创建文本标注

不得不说,ArcGIS 和 CAD 之间的兼容性非常差,shapefile文件和dwg文件之间互相转换会丢失各种属性,但是很多时候他们之间的转换对我们来说是刚需。通常我们都是通过第三方软件(如FME)来实现带属性的转换,我尝试直接使用ArcGIS将shp文件转换从dwg并添加标注,下文记录整个流程和遇到的坑。主要流程为:shp直接转 dwg 设置导出数据的属性 添加标注shp 直接转 dwg对于普通的 shp 转 dwg ,直接使用Toolbox中的转换工具-转为CAD-要素转CAD工具即

2020-11-06 10:14:27 297

原创 火影推荐程序连载60-给萌新HTML5

JavaScript作为一种弱类型语言,最大的特点就是动态类型。也就是说不用提前声明变量的类型,在程序运行时,类型会被动态的确定,并且在执行过程中可以动态的修改变量的类型。同时不同类型变量在运算时会自动进行隐式的类型转换。以下是一些常见的隐式转换示例: 1 2 3 4 5 6 7 varfoo = 2020;// typeof foo -> "number" varfoo ="SpreadJS"...

2020-11-05 14:44:38 108

原创 火影推荐程序连载59-基于gin的golang web开发:模型验证

Gin除了模型绑定还提供了模型验证功能。你可以给字段指定特定的规则标签,如果一个字段用binding:"required"标签修饰,在绑定时该字段的值为空,那么将返回一个错误。开发web api的时候大部分参数都是需要验证的,比如email参数要验证是否是邮箱格式、phone参数要验证是否是手机号格式等等,使用模型验证方法可以将验证过程隔离在业务之外。内置的验证标签Gin通过集成go-playground/validator提供模型验证功能,并提供了很多常用验证规则可以满足我们大部分的开发需求。我们

2020-11-04 14:31:32 314

原创 Spring Security介绍

文章主要分三部分1、Spring Security的架构及核心组件:(1)认证;(2)权限拦截;(3)数据库管理;(4)权限缓存;(5)自定义决策;2、环境搭建与使用,使用当前热门的Spring Boot来搭建环境,结合项目中实际的例子来做几个Case;3、Spring Security的优缺点总结,结合第二部分中几个Case的实现来总结Spring Security的优点和缺点。1、Spring Security介绍​ 整体介绍,Spring Security为基于J2EE开发的企业应用软件

2020-11-03 12:59:24 20533 2

原创 2020-11-02

不管是在Android Material Design,还是Flutter中,Google都在尝试统一动画的行为和实现,在Google看来,动画基本都分为两种,即模拟动画和物理动画,本篇将介绍物理动画,这个概念在Android开发中,涉及的非常少,同时文档也最少,但却是实现很多优雅动画的基础,特别是MDC中封装的一些动画,在很多细节的处理上,都使用到了物理动画的概念。弹性与阻尼物理动画,顾名思义是基于物理学定律基础的动画效果,它实际上参考的就是弹簧的形变过程,即胡克定律,这种动画类型,通常被称为Sp

2020-11-02 20:31:38 402

原创 2020-11-02

Modbus协议时应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络/串口和其它设备之间可以进行通信。它已经成为了一种工业标准。有了这个通信协议,不同的厂商生成的控制设备就可以连城工业网络,进行集中监控。本文实现需要借用一个开源的NModbus库来完成,通过在菜单栏,工具-----NuGet包管理器-----管理解决方案的NuGet程序包,安装NModbus的开源库。本次实例的基本框架和实现效果如下所示:可自动识别当前设备的可用串口。...

2020-11-02 16:44:31 110

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除