JavaCC 是 Java 语言范围内最受欢迎的语法分析生成器,可以读取特定语法写好的范式并把它转换成可以识别且匹配该语法的 JAVA 程序,除了 javacc 也有配套的 JJTree 生成语法树,JJDoc 生成 BNF 范式文档等。
阅读全文分类: 开发
基于 PEG.js 生成权限校验语法表达式解析器
背景 用户有一系列权限,例如 Article.List,User.Edit 等,这时候如果需要进行一个带嵌套的动态权限查询就会很麻烦,如果想做成可配置的就需要语法解析,例如表达式 User.Edit or User.Modify or (User.List and Ad
阅读全文状态机在开发中的应用
简介 我们开发过程中会有各种不同状态,围绕这些状态之间的转换方式会有很多业务逻辑,依赖这些状态又会有更多的业务逻辑,如果这些逻辑代码不使用状态模式进行归类统一,会以各种难以理解和难以修改的方式存在各个
阅读全文WordPress 悬挂备案号
作为一个良好市民,备案号该悬挂还是得悬挂的,新版本的 WordPress 对备案号也提供了支持,但仅限官方主题。 然而大家肯定还是使用第三方主题居多吧,这时候就需要动手写代码修改了。 可以直接修改当前主题下的 foot
阅读全文基于 ByteBuddy 运行时动态修改字节码
简介 Byte Buddy 是一个字节码生成与操作库。它无需编译器,能够在Java程序运行时创建与修改 class 文件。 目标 已有类文件: public static class Log { public static void log(String a) { System.out.println(“L
阅读全文JVM 类加载器应用之多版本库支持
问题 开发过程中,咱们经常需要使用不同的库版本,而这些版本又不是向后兼容的,或者出于某种原因需要支持同一库的多个版本。 在这种情况下,默认的类加载器已经是不支持了,因为 loadClass 方法只加载一次特定的类
阅读全文邮件协议之复合 MIME 内容传输
复合 MIME 允许同一封邮件中同时发送 Text 格式和 Html 格式。在客户端收到这封邮件的时候,可以自主选择将要渲染的版本。这也是为什么有些客户端上会提示用户选择渲染 Html 还是纯文本。 至于为什么两种格式共存,
阅读全文jBrowserDriver + aShot 实现网页后台截屏
依赖简介 jBrowserDriver 是一个纯 Java 的基于 WebKit 的无图形化嵌入式浏览器,可以用于 Web 页面的流程自动化,网页爬虫、页面测试等各种场景。 aShot 是一个功能强大的跨平台 WebDriver 截图工具,详细功能可以
阅读全文SpringBoot 通用启停脚本
注释懒得写了,自己看吧,用的时候将 spring boot 项目打成 jar 包,新建 server.sh 内容如下,执行 ./server.sh restart 即可 #!/bin/bash SERVICE_USER=$(whoami) JDK_VERSION=”jdk1.8.0_66″ SPRINGBOOTAPP_HOME=$
阅读全文PySpider 抓取结果数据预处理
抓取后的数据内容处理,基本处理分以下几种规则: 删除无用的结点,例如 script style 等 原样保留的结点,例如 table img 等 删除带指定 class 的结点 到这一个完整的处理方法也就出来了: def custom_text(self, d
阅读全文