自己实现一个 Mini RPC 框架

自己实现一个 Mini 框架系列之三 —— RPC

查看本系列其他文章

自己实现一个 IoC 框架
自己实现一个 Mini MVC 框架

RPC, 远程过程调用。可以简单地理解为在一台机器上调用另一个地方的代码实现。Java 中比较著名的 RPC 框架有 Dubbo, 公司后端也主要是 Dubbo 支撑起来的。那么自己实现一个 RPC 框架可以吗?
继续阅读“自己实现一个 Mini RPC 框架”

[WPImage2WeiBo] WordPress 微博图床插件

几个月前将博客升级成 HTTPS 了, 导致七牛图床全部失效啦,七牛提供的二级域名不支持 HTTPS, 只能绑定备案的自定义域名,然而并没有已备案域名,只能抛弃七牛啦。搜了一下,发现微博是支持 https 的,于是打算使用微博的图床。

下载安装:https://github.com/YouthLin/WPImage2WeiBo

思路

为了防止以后微博突然禁用外链,文章里的链接在数据库中还是保存为原始的路径。即 http://your-domain.com/wp-content/uploads/2017/01/01/xxx.jpg 这样的形式。
而在输出文章时,替换每个图片链接为微博外链。这样只要原始图片文件一直存在,就算微博禁用了外链,我们把插件一关,也还可以使用原始图片。
所以插件要做的事就是,把原始图片上传到微博中,并维护一个原图链接到微博外链的对应关系。在输出文章时,用外链替换就行了。
继续阅读“[WPImage2WeiBo] WordPress 微博图床插件”

下载七牛云空间所有文件

由于七牛空间自带的域名不支持 https, 因此打算放弃七牛静态空间托管加速。
那么问题来了,如何把之前存在七牛空间中的文件迁移出来呢?

两年前博客搬家时发现一个七牛管理工具,但是貌似现在已经不能用了。
不过没有什么问题可以难倒一个 Java Coder.
翻了一下七牛开发者文档,果然找到了 Java 的 SDK, 只需几行代码就可以把所有文件都下载下来,哈哈。
继续阅读“下载七牛云空间所有文件”

自己实现一个 Mini MVC 框架

mini-mvc-example

上回说到自己实现一个 Mini IoC 容器,有了一个依赖注入的容器,如果不尝试用于 Web 应用那岂不是没什么用。因此我们可以试着在 Mini IoC 的基础上,实现一个 Spring MVC Style 的简单 MVC 框架。

同样,先给出我们希望怎么使用这个的框架的代码,然后再一步步实现我们想要的写法:

用法

继续阅读“自己实现一个 Mini MVC 框架”

自己实现一个 Mini IoC 容器

前言

IoC(Inversion of Control,控制反转)将对象的生成、设置等行为交给容器来完成,而不是由开发者自己编写 new, setXxx 等语句控制。其中最常见的实现方式是 Spring 的依赖注入(Dependency Injection, DI),如有个类 A, 其中一个字段是 B(带有注解 @Resource 或 @AutoWired ),那么容器会自动先查找一个 B 再注入到 A 的这个字段中(查找过程中可能会发现 B 也需要注入一个 C, 这些容器都会帮你完成)。
通常控制反转和依赖注入可以等同起来,我这里用 IoC 这个名称是因为它看起来比较好看——以上是我随便说的,说错了请指正……

于是我们可以自己实现一个 IoC 容器吗?虽然 Spring 已经做得足够好了,但我就是闲得蛋疼(并不闲,每天加班到九点)特别想自己试试怎么实现可以吗?——当然可以,毕竟我还是一个爱学习的好孩子。
继续阅读“自己实现一个 Mini IoC 容器”

各平台桌面提示通知

背景

每天上班都是一整天坐在工位盯着电脑,时间长了眼睛都要瞎了……

需求

每隔一段时间提醒下自己休息一下眼睛,放松一下,上个厕所走动一下~

实现

隔一段时间干某事,这个好办,*nix 下使用 crontab 即可,Windows 貌似也可以通过计划任务实现。

然而提醒功能该怎么办呢?
继续阅读“各平台桌面提示通知”

通过 Nginx 实现在手机上播放电脑中的视频

这两天在学校看剧,由于是 BT 资源,就把整个剧集下载了,但是坐着看看累了,想躺着看。立即想到在电脑上搭建个 Web 服务器,然后开热点,用手机连接热点,打开视频播放。
涉及到:

  • Nginx 的安装与基本配置
  • 符号链接
  • Nginx 打开目录索引(支持中文名)
  • Nginx 403 Forbidden 权限问题
  • 本地可以访问,其他机器不能访问

继续阅读“通过 Nginx 实现在手机上播放电脑中的视频”