公司项目目前使用 SOA 架构(Service-oriented architecture:服务导向架构),每个服务作为一个单体对外提供接口,服务之间使用 GitHub OpenFeign 调用接口。
服务提供者正常提供接口,把需要暴露的接口封装为一个 client jar 包,服务调用者正常引入 jar 包,直接调用 jar 方法即可调用服务提供者接口。此文相关代码示例
Draft, Edit, Proofread, Publish
公司项目目前使用 SOA 架构(Service-oriented architecture:服务导向架构),每个服务作为一个单体对外提供接口,服务之间使用 GitHub OpenFeign 调用接口。
服务提供者正常提供接口,把需要暴露的接口封装为一个 client jar 包,服务调用者正常引入 jar 包,直接调用 jar 方法即可调用服务提供者接口。此文相关代码示例
如果 jar 包在本地,只能每次手动导入,不太方便。可以使用以下方式搭建一个 Maven 仓库
jar 包本质上是一个静态文件,所以可以使用 GitHub 来存放,再利用 GitHub Pages 提供一个地址让其可直接访问下载。
最近打在打印日志这块栽了个跟头,发现日志这块掌握得还不太好,所以大概梳理一下。
其实 SLF4J 类似于 Commons Logging,也是一个日志接口,而 Logback 类似于 Log4j,是一个日志的实现。
今天面试遇到一个关于接口限流的问题:设计一个方案,保证每秒只有 10 个请求可以访问接口。不得不说,此问题可以很好的考察面试高级工程师岗位的候选人的过往经验。不过很遗憾,我原来并没有做过这方面的工作。
HTTP 是无状态协议,所以服务端如果需要记住登录用户,就需要维护一个 SessionId(Cookie) - Session 的键值对。Session 存放用户信息对象。用户信息对象作为 Session 的一个 Attribute。当浏览器请求中包含 Cookie 时,服务器就能识别出具体是哪个用户了。
HashMap 我们知道 HashMap 的数据结构是数组+链表,所以这个问题可以理解为数组+链表有什么优点?
我是这样在 Markdown 中插入截屏图片的:截屏到剪贴板后,直接在 Typora 中粘贴,iPic 将自动将图片上传到阿里云图床(对象存储)。我一直使用 Alfred 的 Clipboard History 功能查看截图大小,发现图片占内存都很大,全屏截图有 10 多 MB,就想着一定要找到一种方法来缩小截屏大小,不然我的阿里云图床费用得嗖嗖涨。
我的个人独立博客是基于 Hexo 搭建的,因为小站,Google 搜索引擎收录文章比较慢,还搜不到
为了解决这个问题,希望把文章也顺便发布到博客平台博客园上。但不想每次手动复制粘贴,打算利用脚本实现,希望除了发布,并且还能更新文章。原来打算找到博客园接口,模拟操作接口实现。搜索发现博客园提供了 MetaWeblog 接口,所以利用接口,开发了这个脚本。源码地址
快速排序(quick sort)的特点是分块排序,也叫划分交换排序(partition-exchange sort)
代码实现方式可以有这么几种:
开发了个 《一键导出 / 备份「有道云笔记」所有笔记》的脚本。主要原理是利用有道云笔记本身的接口。下面是根据正常用户操作逻辑,找到需要的接口,主要是登录和「下载」。
原来一直是有道云笔记的忠实用户,后面接触到了所见即所得的 Typora,有点用不惯有道云笔记了,想着有什么法子能电脑本地文件和有道云笔记同步,这样电脑使用 Typora,手机使用有道云笔记。发现有道云笔记有 Open API ,打算利用提供的 API,写两个脚本,一个 pull 所有文件到本地,一个 push 本地文件到云笔记。但 API 太难用了,N 多年没更新了,问客服也没更新的意思,开发到最后发现竟然没有 Markdown 文件的接口,醉了。遂放弃。
现在我使用 Typora + Dropbox + MWeb 实现同步笔记和手机查看编辑的功能,很香。
最近给朋友推荐此方式,但发现有道云笔记最新的 Mac 客户端和网页端去除了导出所有笔记的功能!这是什么逻辑,怕用户跑了么。所以在原来 pull 脚本的基础上修改得到此脚本。
查找数组 arr 中第 k 小的奇数,如果不存在则返回 0。
计算出时间复杂度(注意代码注释,尽可能不用全排序,不要使⽤库函数或脚本中已经实现好的排序算法和⼯具,需要⾃⼰实现数据结构和所需要的算法)
我通过实现一个简易的 Spring IoC 容器,算是真正入门了 Spring 框架。本文是对实现过程的一个总结提炼,需要配合源码阅读,源码地址。
结合本文和源码,你应该可以学到:Spring 的原理和 Spring Boot 的原理。
Spring 框架是 Java 开发的,Java 是面向对象的语言,所以 Spring 框架本身有大量的抽象、继承、多态。对于初学者来说,光是理清他们的逻辑就很麻烦,我摒弃了那些包装,只实现了最本质的功能。代码不是很严谨,但只为了理解 Spring 思想却够了。
下面正文开始。
又一篇一抓一大把的博文,可是你真的的搞懂了吗?点开看看,事后,你也来一篇。。。
人生在世,谁不面试。单例模式:一个搞懂不加分,不搞懂减分的知识点
单例模式是面试中非常喜欢问的了,我们往往自认为已经完全理解了,没什么问题了。但要把它手写出来的时候,可能出现各种小错误,下面是我总结的快速准确的写出单例模式的方法。
单例模式有各种写法,什么「双重检锁法」、什么「饿汉式」、什么「饱汉式」,总是记不住、分不清。这就对了,人的记忆力是有限的,我们应该记的是最基本的单例模式怎么写。
单例模式:一个类有且只能有一个对象(实例)。单例模式的 3 个要点:
private Singleton(){}
public static Singleton getInstance()
private static Singleton instance
作者:DeppWang
阅读提示:此文适用于有自己博客的同学。
昨天在公众号分享了一篇在 如何在 Markdown 里面插入幻灯片的文章,微信公众号由于平台限制,幻灯片只能在原文里面才能看到效果,不巧,原文链接手误写错了一个单词,本来是 insert,写成了 inset。
https://depp.wang/2020/03/26/how-to-inset-slide-in-markdown/ |
作为一个强迫症患者,不能忍受这样的问题。可一旦我修改了原文链接,公众号这边要么删了重发,要么来个留言,说原文链接已经修改。两种方式可以解决问题,但是不爽。
除了像我手误写错链接单词的情况,很多时候,我们文章修改题目后,如果想修改 url(url 是文章题目的英文),就会面临原 url 失效的问题。
如果你也有上面这种困扰,那么可以看看我的解决思路。