更好的排版可以看这个http://note.youdao.com/s/Uoizqaym 钉钉官方的SDK对钉钉API提供了简单的封装,但官方的SDK使用起来较为臃肿,并且最重要的是官方SDK仅仅是封装了API,对于accessToken的维护以及消息回调处理等等都没有封装,在项目中大规模使用比较麻烦 Read More
posted @ 2021-02-23 14:03 听雨阁中听雨歌 Views(3675) Comments(1) Diggs(2) Edit
Java动态代理 在介绍动态代理之前,我们先来说说静态代理。 静态代理 假设,现在有这么一个需求场景:项目依赖了一个三方库,现在想要在项目调用三方库时记录调用日志。那么我们如何能够在无法修改三方库代码的前提下,完成这个需求呢? 相信大家能够想到很多种方法来实现,其中最简单粗暴的就是静态代理了。大概的 Read More
posted @ 2020-10-21 18:42 听雨阁中听雨歌 Views(1537) Comments(0) Diggs(0) Edit
前言 从 "JVM 的内存划分规范" 中,我们可以知道除了方法去和堆区外其他的内存区域都是线程私有的,这就意味着,这些区域是跟随线程而生而灭的,自然不是 GC 的作用区域。然而堆区、方法区却是跟随 JVM 实例的生命周期而来的,多个线程共享这块区域,是 GC 的主要作用区域。下面将会以堆区为当前内存 Read More
posted @ 2020-05-04 21:04 听雨阁中听雨歌 Views(296) Comments(0) Diggs(0) Edit
前言 什么是JVM的GC,GC(Garbage Collection)也就是垃圾回收是JVM在内存空间不足等必要条件下自动清除应用程序中的垃圾对象,回收垃圾对象占用的内存空间。 JVM的GC机制使得开发者从繁琐的内存管理中释放出来,只需要专注于业务开发。但即便如此,这并不意味着我们可以不用去理解GC Read More
posted @ 2020-03-24 09:28 听雨阁中听雨歌 Views(279) Comments(0) Diggs(0) Edit
我们在用Spring Boot去向前端提供Restful Api接口时,经常会遇到接口处理异常的情况,产生异常的可能原因是参数错误,空指针异常,SQL执行错误等等。 当发生这些异常时,Spring Boot会自动对异常进行一次统一的处理,返回一个异常信息: 当不带参数向这个接口发起请求时就会得到下面 Read More
posted @ 2019-11-08 14:53 听雨阁中听雨歌 Views(1958) Comments(0) Diggs(0) Edit
公司产品因为业务发展,出现了一个新的需求:需要去实现知识库的层级知识展示,展示效果通过树图来实现,具体的展示形式可见下图: 其中有几个需要注意点: 1. 节点上的详情icon可以点击,点击展开关闭详情 2. 节点后的伸缩icon在伸缩状态下需要显示当前节点的子节点个数 这个效果有点类似xmind的交 Read More
posted @ 2019-11-08 14:26 听雨阁中听雨歌 Views(1866) Comments(5) Diggs(1) Edit
缓存穿透与缓存雪崩 缓存穿透 何为缓存穿透 何为缓存穿透,顾名思义就是缓存被穿透了,当请求去查询一个根本不存在的数据时,请求就不会被缓存拦截住而是直接打到了DB中。 在请求并发量较低的情况下出现了缓存穿透不会出现大的问题,DB完全能够承受住相应的并发量。但在大量请求发生时,由于请求的数据根本就不存在 Read More
posted @ 2018-07-27 00:05 听雨阁中听雨歌 Views(223) Comments(0) Diggs(0) Edit
要想弄清FastCGI和PHP FPM,就需要先弄清一些基本的概念: `FastCGI PHP FPM PHP CGI`。 CGI 通用网关接口,描述的服务器和请求处理程序之间的数据传输的一种标准。 这可以简单的理解为 就是保证 传过来的数据是标准的,能够方便的请求处理程序的编写。 在这一层面之上, Read More
posted @ 2017-08-03 20:25 听雨阁中听雨歌 Views(240) Comments(0) Diggs(0) Edit
Django的中间件 Django对于中间件的定义为: 中间件是用来处理请求和响应的插件机制,用来全局的处理Django的输入输出。 每一个中间件都会有自己专门的功能。 激活中间件 要激活 中的中间件,需要将他们添加到Django的 配置项中。 在 中,每一个中间件的表示方法都是使用 它在Pytho Read More
posted @ 2017-04-24 22:24 听雨阁中听雨歌 Views(319) Comments(0) Diggs(0) Edit
Python 高阶函数 什么是高阶函数: 高阶函数就是能够接收 作为参数的函数。 比如: 上段代码的执行结果为: 为什么会这样呢,要解释清楚就需要从基础慢慢的来了~ 变量可以指向函数 首先,我们要知道。在Python中,变量可以指向函数对象,这就可以做很多好玩的东西。比如说: abs(10) // Read More
posted @ 2017-04-09 13:33 听雨阁中听雨歌 Views(313) Comments(0) Diggs(0) Edit