去年一加5T发布后, 刚好想换台手机. 当时用 iPhone 5s 和 Nokia Lumia 638 Windows 10, 都不太好用了, 于是换了 8G+128G 的一加. 用到现在一直很流畅. 这两天系统推送了 Android 8 更新, 还自动下载好了. 于是手贱更新了……
继续阅读“一加 5T 升级 Android 8”
点击量:10
生活如此多娇
去年一加5T发布后, 刚好想换台手机. 当时用 iPhone 5s 和 Nokia Lumia 638 Windows 10, 都不太好用了, 于是换了 8G+128G 的一加. 用到现在一直很流畅. 这两天系统推送了 Android 8 更新, 还自动下载好了. 于是手贱更新了……
继续阅读“一加 5T 升级 Android 8”
点击量:10
自己实现一个 Mini 框架系列之三 —— RPC
自己实现一个 IoC 框架
自己实现一个 Mini MVC 框架
RPC
, 远程过程调用。可以简单地理解为在一台机器上调用另一个地方的代码实现。Java 中比较著名的 RPC 框架有 Dubbo, 公司后端也主要是 Dubbo 支撑起来的。那么自己实现一个 RPC 框架可以吗?
继续阅读“自己实现一个 Mini RPC 框架”
点击量:1
我们知道,JDK 动态代理可以对接口进行代理,把接口的所有方法代理到 InvocationHandler 的 invoke 方法上。
示例如下:
继续阅读“JDK 动态代理的实现”
点击量:2
讲述我的微信实体创业故事,其实本来一开始对微信上卖东西是抵触的,感觉微商等同于传销。为什么了现在也成了一名微商,当然我是做的微信美食外卖,为了介绍的更完整,就先从头开始介绍一下自己的生涯。
点击量:20
几个月前将博客升级成 HTTPS 了, 导致七牛图床全部失效啦,七牛提供的二级域名不支持 HTTPS, 只能绑定备案的自定义域名,然而并没有已备案域名,只能抛弃七牛啦。搜了一下,发现微博是支持 https 的,于是打算使用微博的图床。
下载安装:https://github.com/YouthLin/WPImage2WeiBo
为了防止以后微博突然禁用外链,文章里的链接在数据库中还是保存为原始的路径。即 http://your-domain.com/wp-content/uploads/2017/01/01/xxx.jpg 这样的形式。
而在输出文章时,替换每个图片链接为微博外链。这样只要原始图片文件一直存在,就算微博禁用了外链,我们把插件一关,也还可以使用原始图片。
所以插件要做的事就是,把原始图片上传到微博中,并维护一个原图链接到微博外链的对应关系。在输出文章时,用外链替换就行了。
继续阅读“[WPImage2WeiBo] WordPress 微博图床插件”
点击量:30
由于七牛空间自带的域名不支持 https, 因此打算放弃七牛静态空间托管加速。
那么问题来了,如何把之前存在七牛空间中的文件迁移出来呢?
两年前博客搬家时发现一个七牛管理工具,但是貌似现在已经不能用了。
不过没有什么问题可以难倒一个 Java Coder.
翻了一下七牛开发者文档,果然找到了 Java 的 SDK, 只需几行代码就可以把所有文件都下载下来,哈哈。
继续阅读“下载七牛云空间所有文件”
点击量:7
上回说到自己实现一个 Mini IoC 容器,有了一个依赖注入的容器,如果不尝试用于 Web 应用那岂不是没什么用。因此我们可以试着在 Mini IoC 的基础上,实现一个 Spring MVC Style 的简单 MVC 框架。
同样,先给出我们希望怎么使用这个的框架的代码,然后再一步步实现我们想要的写法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
@Controller public class UserController { private static final Logger LOGGER = LoggerFactory.getLogger(UserController.class); @Resource private UserService userService; @URL(value = {"/", "/index"}, method = {HttpMethod.GET, HttpMethod.POST}) public String list(Map<String, Object> map) { map.put("userList", userService.listUsers()); return "list"; } @URL("home") public String home() { return "forward:/"; } @URL(value = "/add", method = HttpMethod.GET) public String addPage() { return "add"; } @URL(value = "/add", method = HttpMethod.POST) public String addUser(Map<String, String> map, @Param("name") String name) { //String name = map.get("name"); // map 里有所有参数 或者从方法中标有 @Param 的参数获取 String email = map.get("email"); String note = map.get("note"); if (name == null || email == null) { map.put("error", "用户名及电子邮件是必填项"); // map 还充当返回结果的 Model 的角色 return "add"; } User user = new User().setName(name).setEmail(email).setNote(note); userService.saveUser(user); return "redirect:/"; } // ... } |
点击量:1
IoC
(Inversion of Control,控制反转)将对象的生成、设置等行为交给容器来完成,而不是由开发者自己编写 new, setXxx 等语句控制。其中最常见的实现方式是 Spring 的依赖注入(Dependency Injection, DI),如有个类 A, 其中一个字段是 B(带有注解 @Resource 或 @AutoWired
),那么容器会自动先查找一个 B 再注入到 A 的这个字段中(查找过程中可能会发现 B 也需要注入一个 C, 这些容器都会帮你完成)。
通常控制反转和依赖注入可以等同起来,我这里用 IoC 这个名称是因为它看起来比较好看——以上是我随便说的,说错了请指正……
于是我们可以自己实现一个 IoC 容器吗?虽然 Spring 已经做得足够好了,但我就是闲得蛋疼(并不闲,每天加班到九点)特别想自己试试怎么实现可以吗?——当然可以,毕竟我还是一个爱学习的好孩子。
继续阅读“自己实现一个 Mini IoC 容器”
点击量:1
欢迎使用WordPress。这是您的第一篇文章。编辑或删除它,然后开始写作吧!
点击量:1
每天上班都是一整天坐在工位盯着电脑,时间长了眼睛都要瞎了……
每隔一段时间提醒下自己休息一下眼睛,放松一下,上个厕所走动一下~
隔一段时间干某事,这个好办,*nix 下使用 crontab
即可,Windows 貌似也可以通过计划任务实现。
然而提醒功能该怎么办呢?
继续阅读“各平台桌面提示通知”
点击量:2