9月 262019
 

google guava使用教程系列(3)- 前置条件检查

原文地址:[https://github.com/google/guava/wiki/PreconditionsExplained])(https://github.com/google/guava/wiki/PreconditionsExplained)

简而言之,guava提供了一系列检查参数的方案,个人感觉一般,实际业务场景中对于参数判断自己写可能比这种封装更方便。

官方举的例子:

checkArgument(i >= 0, "Argument was %s but expected nonnegative", i);
checkArgument(i < j, "Expected i < j, but %s >= %s", i, j);

大致有如下几类:

  • checkArgument(boolean)
  • checkNotNull(T)
  • checkState(boolean)
  • checkElementIndex(int index, int size)
  • checkPositionIndex(int index, int size)
  • checkPositionIndexes(int start, int end, int size)

http://ifeve.com/google-guava-preconditions/有翻译,但翻译不全,建议github上的原版wiki。看名字基本能猜到方法用途,看个人喜好吧,我个人倒是更喜欢apache commons里的校验方法,比如StringUtils.isEmpty()

8月 242019
 

本文仅展示总体配置,具体注解用法请另行搜索、查询。

1.加上maven依赖,引入相关包

</pre>
<pre><dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-annotations -->
<dependency>
    <groupId>io.swagger.core.v3</groupId>
    <artifactId>swagger-annotations</artifactId>
    <version>2.0.8</version>
</dependency>
<!-- http://localhost:18004/doc.html -->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.8.8</version>
</dependency>
<!-- Swagger用了高版本的 -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>28.0-jre</version>
</dependency></pre>
<pre>

Continue reading »

7月 272019
 

默认情况下,如果在mac终端中执行shell脚本,会弹出窗口展示脚本执行输出。

工作中需求:执行shell脚本,不能展示输出。

解决:

问了下谷歌,搜索出如下答案,亲测可用。

  • 打开mac上的Automator程序,选择应用程序(application),选择shell脚本选项,将脚本放到界面中(用引号括起来),或是直接将文件拖拽到界面中
  • 执行,测试没问题即可保存。

原文: Continue reading »

4月 142019
 

注意:本文档基于google guava 28 wiki

Joiner

连接器

将字符串拼接

Joiner joiner = Joiner.on("; ").skipNulls();
return joiner.join("Harry", null, "Ron", "Hermione");

返回Harry; Ron; Hermione
skipNulls()方法是直接忽略null,使用useForNull(String)方法可以给定某个字符串来替换null,即

Joiner joiner = Joiner.on("; ").useForNull("替换字符串");

Continue reading »

1月 252019
 

建议使用pinyin4j,作为老牌的拼音转汉字解决方案,个人感觉比较可靠。小站用这个应该够用了。
可以参考该帖子:使用 pinyin4j API 将汉字转换为拼音 (学习笔记)
hutool工具包中有一个PinyinUtil工具类,目前已被弃用,不推荐使用,因为某些汉字可能会被转错,比如下图中的“馨”:

11月 182018
 

主要参考这篇官方文档:
https://www.rabbitmq.com/monitoring.html

有如下接口:

  • /api/overview
    • GET请求,集群概况
  • /api/nodes/{node}
    • GET请求,获取单个节点情况
  • /api/nodes
    • GET请求,获取所有节点情况
  • /api/queues/{vhost}/{qname}
    • GET请求,获取队列情况
  • /api/nodes/{node}/memory
    • GET请求,内存相关

Continue reading »

1月 102018
 

整理笔记本时发现一些以前做过的笔记,整理一下,在博客里留个记录,省的以后忘记。
问题是这样的:dubbo在部署时需要用到dubbo-admin,但dubbo-admin需要自己编译,网上各种下载的war包可能并不适合自己的开发环境、有极大概率是没法用的。
编译dubbo-admin很简单,在编译环境中准备好jdk、maven(jdk maven配置过程就没必要说了,网上n多教程),从github上下载dubbo源代码,准备工作就这些。
我的编译环境如下:

  • MacOSX High Sierra
  • Oracle JDK 1.8
  • apache maven 3.5.2

编译步骤: Continue reading »