飞污熊博客

静下心来做一件事

我之前写了一篇如何在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证书申请一般都需要一笔费用。

阅读全文 »

在Java Web开发中,一般更新了Java文件后要手动重启Tomcat服务器才能生效,浪费不少生命啊, 自从有了JRebel这神器的出现,不论是更新类还是更新Spring配置文件都能做到立马生效,大大提高开发效率。

JRebel的使用方式最常见还是通过插件方式使用,这里我介绍下在IntelliJ IDEA中怎样集成JRebel, 另外还顺便介绍一下IDEA如何进行远程调试。

阅读全文 »

作为一个离开 Google 生活就无法自理的人类,我曾经发帖、提问、翻遍各种网站,四处寻找靠谱的科学上网利器。 网上也买过好多,自己也用过一些开源免费的proxy,最后都会出现各种莫名其妙的问题,各种不稳定。

最后我选择自己动手,丰衣足食,利用EC2虚拟主机搭建SS,这个东东是由 Clowwindy 开发的一款软件, 其作用本来是加密传输资料。当然,也正因为它加密传输资料的特性,使得XXX没法将由它传输的资料和其他普通资料区分开来, 也就不能干扰我们访问那些「不存在」的网站了。

如果你希望不花钱就能用上优质的服务──醒醒,别做梦了,免费和优质从来不可能划上等号。 不过想要共享或建立多账户来出售的话,能赚钱也说不定🙃

阅读全文 »

在Java 7发布的新的IO框架中,除了大家都熟知的 FileVisitor 接口外,还有个 WatchService 接口经常被人忽视掉。 这个类可以让你实时的监控操作系统中文件的变化,包括创建、更新和删除事件。

WatchService 用来观察被注册了的对象的变化和事件。它和Watchable两个接口的配合使用, WatchService类似于在观察者模式中的观察者,Watchable类似域观察者模式中的被观察者。

而Java 7中的java.nio.file.Path类就实现了Watchable接口,这样的话,和Path类一起可实现观察者模式。

阅读全文 »

虽然现在做WebService开发的越来越少了,但是还是会碰到很多老的系统用到这个技术。 本篇讲解一下如何在Spring4里面集成Axis2开发WebService,包括服务器端和客户端。

阅读全文 »

私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建。 有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库; 否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。

Nexus是一个强大的Maven仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。 如果使用了公共的Maven仓库服务器,可以从Maven中央仓库下载所需要的构件(Artifact),但这通常不是一个好的做法。 正常做法是在本地架设一个本地Maven仓库服务器,利用Nexus私服可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。

阅读全文 »

Echarts是百度一款开源可视化图表库,基于html5 Canvas的。能够快速让你看到漂亮的效果。也是百度开源产品中的良心之作。

有时候在Java程序中也需要导出好看的图表,比如我经常会基于JMH做各种微基准测试,想将测试结果可视化导出为图表形式。 试用了一下JFreeChart,跟Echarts导出的图比起来还是弱了不少。但是Echarts是基于js的,只能在浏览器中解析和导出图片,怎么办呢?

后来我想到一个方法,就是基于WebSocket技术,服务器将图表数据推送到页面,然后页面再触发导出动作。 本篇将介绍如何通过SpringBoot、SocketIO、Echarts技术来实现这个图表导出功能。

阅读全文 »

RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。

RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,AMQP,即Advanced Message Queuing Protocol, 高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。

在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间, 提高了系统的吞吐量。

本篇将详细介绍RabbitMQ以及如何在SpringBoot中使用。

阅读全文 »

Spring Batch是一个轻量级的框架,完全面向Spring的批处理框架,用于企业级大量的数据读写处理系统。以POJO和Spring 框架为基础, 包括日志记录/跟踪,事务管理、 作业处理统计工作重新启动、跳过、资源管理等功能。

Spring Batch官网是这样介绍的自己:一款轻量的、全面的批处理框架,用于开发强大的日常运营的企业级批处理应用程序。

框架主要有以下功能:

  • Transaction management(事务管理)
  • Chunk based processing(基于块的处理)
  • Declarative I/O(声明式的输入输出)
  • Start/Stop/Restart(启动/停止/再启动)
  • Retry/Skip(重试/跳过)

如果你的批处理程序需要使用上面的功能,那就大胆地使用它吧。

阅读全文 »