飞污熊博客

静下心来做一件事

之前写过一篇如何使用Nexus私服,发布自己写的maven构件,供大家使用。但是只能在公司内部用, 而你想全世界的人都能用到你写的东西,就需要发布到Maven中央仓库了。

本篇文章详细讲解如何发布Maven构件到中央仓库。

阅读全文 »

上一篇介绍了Java性能测试框架JMH的使用方法,本篇通过JMH来测试一下Java中几种常见的JSON解析库的性能。 每次都在网上看到别人说什么某某库性能是如何如何的好,碾压其他的库。但是百闻不如一见,只有自己亲手测试过的才是最值得相信的。

JSON不管是在Web开发还是服务器开发中是相当常见的数据传输格式,一般情况我们对于JSON解析构造的性能并不需要过于关心, 除非是在性能要求比较高的系统。

目前对于Java开源的JSON类库有很多种,下面我们取4个常用的JSON库进行性能测试对比, 同时根据测试结果分析如果根据实际应用场景选择最合适的JSON库。

这4个JSON类库分别为:Gson,FastJson,Jackson,Json-lib。

阅读全文 »

JMH,即Java Microbenchmark Harness,这是专门用于进行代码的微基准测试的一套工具API。

JMH 由 OpenJDK/Oracle 里面那群开发了 Java 编译器的大牛们所开发 。何谓 Micro Benchmark 呢? 简单地说就是在 method 层面上的 benchmark,精度可以精确到微秒级。

Java的基准测试需要注意的几个点:

  • 测试前需要预热。
  • 防止无用代码进入测试方法中。
  • 并发测试。
  • 测试结果呈现。

比较典型的使用场景:

  1. 当你已经找出了热点函数,而需要对热点函数进行进一步的优化时,就可以使用 JMH 对优化的效果进行定量的分析。
  2. 想定量地知道某个函数需要执行多长时间,以及执行时间和输入 n 的相关性
  3. 一个函数有两种不同实现(例如JSON序列化/反序列化有Jackson和Gson实现),不知道哪种实现性能更好

尽管 JMH 是一个相当不错的 Micro Benchmark Framework,但很无奈的是网上能够找到的文档比较少,而官方也没有提供比较详细的文档,对使用造成了一定的障碍。 但是有个好消息是官方的 Code Sample 写得非常浅显易懂, 推荐在需要详细了解 JMH 的用法时可以通读一遍——本文则会介绍 JMH 最典型的用法和部分常用选项。

阅读全文 »

ngrok是一个反向代理,它能够让你本地的web服务或tcp服务通过公共的端口和外部建立一个安全的通道, 使得外网可以访问本地的计算机服务。也就是说,我们提供的服务(比如web站点)无需搭建在外部服务器, 只要通过ngrok把站点映射出去,别人即可直接访问到我们的服务。

有做过微信公众号开发的人,对它应该不陌生。因为用户跟微信公众号产生的交互行为,微信会把用户的相关信息推送到我们自己的服务器, 如果服务在本地,那微信当然无法推送给我们,这使得开发功能的时候调试相当麻烦。我们可以使用ngrok把本地站点映射出去,解决这个问题。

另外如果我们想把本地开发时候的系统临时给外网用户看,无需部署到服务器上面去就可以,非常方便。

ngrok是开源的,官网地址:https://github.com/inconshreveable/ngrok

下面,我们开始搭建ngrok服务。操作系统为CentOS 7.2

阅读全文 »

小程序已经添加了对WebSocket的支持,如果需要长连接和推送的场景来讲可以使用。 关于websocket的使用,小程序WebSocket API 里边已经给了。 相比较传统的HTTP接口形式,websocket长连接可实现双向通信,但是用好它可并不简单。

阅读全文 »

根据微信支付的官方文档,小程序支付需要绑定商户号,并且小程序和商户号的认证主体必须一致。 目前我们的商业逻辑是小程序平台主体和支付的商户主体不一致, 那么就需要从我们的小程序跳转到支付主体小程序完成支付后,再返回我们的小程序。

曾经尝试过在小程序中通过webview的方式嵌套H5网页,使用公众号支付方式,后来发现小程序并未开放这个JSAPI。

接下来详细介绍一下如何实现小程序之间的跳转支付。

首先我已经有了2个小程序:

  1. 平台小程序A,认证主体是A公司
  2. 支付小程序B,认证主体是B公司
阅读全文 »

最近要做一个项目需要在小程序中打开外链,小程序最近开放了web-view组件, 可在里面内嵌自己写的H5页面,也就实现了打开外链的功能,但是有几个注意点。 这里记录一下,希望将来小程序能放开更多限制。

阅读全文 »

在开发Spring Boot应用的时候,除了Maven以外,Gradle也是一个不错的构建选择。 IDEA 默认使用Gradle工具做Android的构建程序,在开发APP的时候就必须要使用到Gradle了。 这里简单记录一下使用的方法,以及跟IDEA的集成方式。

阅读全文 »

我之前写了一篇如何在readthedoc上面发布文档的文章,现在又多了一个选择,就是使用GitBook来编写文档。 主要是觉得对于一个托管到GitHub上面的项目来讲,可以顺带的编写使用教程和文档,可以托管到github.io上面, 非常的方便有用。因为很多软件别人觉得好不好用,文档太重要了。

阅读全文 »

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。 即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。

HTTPS的优点:

  1. 内容加密建立一个信息安全通道,来保证数据传输的安全;
  2. 身份认证确认网站的真实性
  3. 数据完整性防止内容被第三方冒充或者篡改

当然凡事都有两面性,HTTPS的缺点也很明显,就是处理速度会比HTTP慢,另外网站的CA证书申请一般都需要一笔费用。

阅读全文 »