Things of interesting

プログラミングに関する技術ネタの備忘録

Java

Java(SpringBoot)でbitcoindのJSON-RPCを利用する

やること bitcoindはJSON形式でブロックやトランザクションの情報を取得できるJSON-RPCという通信プロトコルをサポートしています。 今回はSpringBootで作成したプロジェクト上で、bitcoind JSON-RPCを呼び出すサンプル実装を行います。 事前準備 SPRING INI…

Spring Webfluxで例外ハンドリングを行う

やること SpringWebflux導入にあたって例外ハンドリングの方法を調べて実装します。 SpringMVCだとControllerAdvice+ResponseEntityExceptionHandlerを使って共通の例外ハンドリングとかを実装していると思いますが、これらが使えなくなるので替わりの方法を…

Spring WebfluxのWebsocketを使ってサーバー間通信

やること Webfluxを導入してみたので、既存のspring-bootに入っているwebsocketからwebfluxのサポートするwebsocket実装に切り替える。 サーバー間通信で使用するので、通信としてのServerもClientもJavaで実装する(ブラウザは使用しない) 事前準備 SPRING…

SpringBoot+Gradleで別rootのプロジェクトへ依存関係をつけたビルド構成にする

やること 開発中のプロダクトで以下のようなgit repository上の構成にしたかったのですが、gradleがサポートしているmulti projectの構成だとうまいやり方がみつからなかったので以下のような方法で対応してみました。 A: サーバー共通処理やドメインモデル…

VSCodeでJavaプログラム(SpringBoot)のデバッグ

code.visualstudio.com 少し前までプラグインで用意されていたDebuggerだとSpringBoot/Gradle使ったアプリでうまくデバッグできなかったのですが、MicrosoftからJavaDebuggerがリリースされデバッグできるようになっていました。 ありがたや。

bitcoindからのメッセージをZeroMQ経由(+SpringBoot)で購読する

やること bitcoindにはJSON-RPC以外にZeroMQを介したメッセージ購読ができるようになっていますが、これをSpringBootアプリケーション上にサンプル実装します。 ZeroMQの実装ライブラリとしてjeromqを使用します。 GitHub - zeromq/jeromq: Pure Java ZeroMQ…

Werckerを使ってGithubへのreleaseとJarアップロードを自動化する

やること SpringBootでプロジェクトを開発する際に共通で使う機能などをライブラリ化して参照できるようにしたい。 プロジェクトの依存関係で解決してもいいですが、共通ライブラリが肥大化するような場合だとローカルビルドが面倒なので今回はJar化したもの…

Springboot+GradleのアプリケーションをWercker/Codecov連携する

やること SpringBoot+Gradleで作ったアプリケーションをWercker/Codecovと連携させてCI環境を作ります。 Wercker : ビルド・デプロイ環境を提供するCIサービスです。類似のサービスにCircleCIやTravisCIがありますが無料で使える枠が大きいのとDockerイメー…