分类
安卓

[OnePlus]安卓Root/升级备忘

工具下载

分类
Java

远程执行 Java 代码

本文是《深入理解 Java 虚拟机》中的一个实战,看完后照着敲的代码,简单地封装了一个 Servlet, 只需引入 Maven 并配置一下这个 Servlet 就可以实现浏览器端上传 Java 代码,远程动态执行。

关于书上的这部分代码,就不贴了,大家可以直接看书,没有书的可以参考这篇文章:
http://blog.csdn.net/coslay/article/details/49564789
主要原理就是,编译好的字节码,我们把其中对 System 类的引用移花接木到我们自己写的一个 HackSystem 类上,这样,就可以拿到所有往 stdout 输出的内容了,然后显示在网页上。

分类
安卓

一加 5T 升级 Android 8

去年一加5T发布后, 刚好想换台手机. 当时用 iPhone 5s 和 Nokia Lumia 638 Windows 10, 都不太好用了, 于是换了 8G+128G 的一加. 用到现在一直很流畅. 这两天系统推送了 Android 8 更新, 还自动下载好了. 于是手贱更新了……

分类
Java

自己实现一个 Mini RPC 框架

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

查看本系列其他文章

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

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

分类
Java

JDK 动态代理的实现

我们知道,JDK 动态代理可以对接口进行代理,把接口的所有方法代理到 InvocationHandler 的 invoke 方法上。
示例如下:

分类
未分类

辣先森微信外卖创业故事

讲述我的微信实体创业故事,其实本来一开始对微信上卖东西是抵触的,感觉微商等同于传销。为什么了现在也成了一名微商,当然我是做的微信美食外卖,为了介绍的更完整,就先从头开始介绍一下自己的生涯。

分类
wordpress

[WPImage2WeiBo] WordPress 微博图床插件

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

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

思路

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

分类
Java

下载七牛云空间所有文件

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

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

分类
Java

自己实现一个 Mini MVC 框架

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

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

用法

@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:/";
    }
     // ... 
}
分类
Java

自己实现一个 Mini IoC 容器

前言

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

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