github.com/prometheus/client_golang でメトリクスを取る この記事はGoアドベントカレンダー向けの記事です。 この記事では github.com/prometheus/client_golang を使って 基本的なメトリクスを取ると同時に、HTTPハンドラのメトリクスを追加してみます。 …
Content-Type周りの挙動で死んでしまった回 使っているSpringは5.1.0、Spring Bootは2.0.6です。 元はこんなコード。 @Before public void setUp() { this.mockMvc = MockMvcBuilders.standaloneSetup(controller) .setMessageConverters(httpMessageConvert…
Spring Boot 1.5.xでは動いていた @Scheduledをつけた定期処理が Spring Boot 2.xでは動かないことがあります。 EnableSchedulingを自分のアプリケーションのConfigurationクラスにつけてください。 どこにもつけてないんだと思います。 ちょっとハマったよ…
こんにちは。紅葉の季節ですね。 最近寒くて辛い。Spring Bootのアップデートもうまくいってなくて辛い。 今日も今日とて、アップデートでハマったメモを書きます。 ObjectMapper#readerForUpdatingを使っているあなた。気をつけましょう。 あるキーに対して…
こんにちは。今日はCaffeineでキャッシュのエントリに対して キャッシュ有効時間に対してランダムな揺らぎを導入する方法をここに書いておきます。 キャッシュに対してランダムな揺らぎを入れる必要性に関してはこちらの記事を読むと一部書いてあると思いま…
以下のモジュールを試した。 reactor-addons/reactor-logback at master · reactor/reactor-addons · GitHub Reactor LogbackはLMAX Disruptorの上に作られたReactorのアドオンだ。 このモジュールはアプリケーションのための高速で非同期なロギングの機能を…
出来ない。 理由はタイトルに書いた通り、springfox (現在最新 2.9.2) ではComponentScanを利用している。 なぜか spring-context-indexerを有効にする際は、ComponentScanを利用しているjarが全て対応していないといけない。 じゃあどうするか。 indexerでi…
Tomcat DBCPを使いましょう、ということらしいです。(他のDBCPはどうなんだろう。) Can I use hikariCP with ReplicationDriver? · Issue #1123 · brettwooldridge/HikariCP · GitHub Problems with MySQL master/slave allowMasterDownConnections · Issu…
変わってしまった。 これは特殊な条件下によって起きる。 どのようなコードだったか @RestController public class MyController { @GetMapping public ResponseEntity<String> get() { return ResponseEntity.ok("Hello World"); } } どうなったか 手元のSpring Boo</string>…
タイトル通りです。 Spring Bootのバージョンアップ中に発覚しました。 以下のようなコードです。 @Test public void test() throws IOException { JsonNode node = new ObjectMapper().readTree(""); // 2.8だと例外が出る assertThat(node).isNull(); // 2…
初めに 少し素振りにScalaを書いている。 タイトル通りだが、以下の本を読みながら書いている。 Webサーバを作りながら学ぶ 基礎からのWebアプリケーション開発入門 まだまだ序盤だが なかなか丁寧に解説されているのと 実験ベースでゆっくり進んでいく。 最…
はじめに 前回から色々と触ってきた Byte Buddyというライブラリですが、自分の頭の整理のために ここに簡単にまとめておく。 Byte Buddyはバイトコード操作用のライブラリがあり その中にAdviceというAPIが存在する。 このAPIでは、メソッドの先頭や最後に…
はじめに 前回はただフィールドを追加するだけのコードを書きました。 なんのひねりもありません。 progret.hatenadiary.com そして今回はメソッドの最初と最後にロギング処理を追加します。 今回は簡単化のため、標準出力に出力します。 今回の記事ではJava…
バイトコード操作を使って 本記事では、フィールドを追加してみます。 対象クラスをAfterのような形に操作してみます。 (テストではstaticな内部クラス) // Before class Some{} // After class Some{ private String foo; } Javassistでフィールドを追加…
今日はここのところずっと調べていたラムダ式、およびメソッド参照について調べていましたので それをこの記事でまとめたいと思います。 まずはじめに。 ここに、テストコードを含む、ラムダ式およびその他のコードをあわせた、3種類のコードを用意した。 も…
初めに 今回出てくるのはこの辺 MethodHandles (Java Platform SE 8) MethodType (Java Platform SE 8) MethodHandle (Java Platform SE 8) MethodHandles.Lookup (Java Platform SE 8) MethodHandleの朝はLookupオブジェクトを作ることから始まる。 Lookup …
今回はReact+TypeScript+Spring Bootで書いてみる。 フロントエンド構成 TypeScript React Webpack Jest (一応入れたけど、習熟度が足りず画面のIFがガンガンぶっ壊れるから現状テスト書いてない) bulma (CSSフレームワーク, そういえばhack使ってみたかっ…
効率良くTypeScriptでドメインモデルの型定義を管理したい。 例えばここに、以下のようなツイッターのような投稿を模したモデルがあるとする。 type Post = { id: number, content: string }; ふむ。特筆すべきものはない。 ではこれをモジュールとして型だ…
Spring Bootで作った認証で保護されているAPIを叩く。 ログインページに入って、セッションを確立する -c オプションでクッキーを保存する。 $ > curl -c my.cookie http://localhost:8080/login 以下みたいなクッキー(のファイル)ができるのでcatで確認 $…
はじめに 今回の記事では以下の実装を行ったのでメモ書きとして残しておきます。 EclipseでのSpring Loadedを使ったHot Swap Thymeleaf3とSpring Securityによるフォーム認証 EclipseでのSpring Loadedを使ったHot Swap 公式に見にいくとIDEAしか書いてませ…
前置き この記事は下記の記事を補足する形で書いていきます。 React + TypeScriptでjestを使ったテストをする - かずきのBlog@hatena この記事で行うのはTypeScriptのテストを行って、jestでカバレッジを取るまでです。 足回り まずはtsconfig.jsonです。と…
初めはavaを使おうと思ってたんです。 下記の説明を見たところコンパイルしてからやってね、みたいな形になっています。 github.com github.com avaはmagic-assertを使っており、jsに対してassertの表示を見やすくするための処理が入ってるはずです。 そのた…
みんなだいすきアノテーション みんな大嫌いアノテーション あの手この手でアノテーション というわけでNotNullアノテーションが付けられたメソッドを バイトコード操作する話です。 NotNull制約をアノテーションだけで実現します。 似たような仕組みはCheck…
やる気ない感じでJavaFXを軽く触ることにした。ごらんの有様だよ!!ドラッグ・アンド・ドロップしたファイル(.jar or .class)をデコンパイルします。 ドラッグ・アンド・ドロップしたファイルと同じディレクトリにdecompiledというフォルダを作成し そこに…
Spring MessagingでのSTOMPは以下の形で設定を行う。 これがなぜ動くのかを軽く探ってみたのでメモとして残しておく。 普通にSpringでWebsocketを使いたいならリファレンスのここ見ればよいかと。 なぜこのリファレンスにあるソースが動くのかを大まかに調べ…
遅まきながらSpringを入門した時のメモを書きます。 Spring Bootではありません。 経緯 WebScoketやりたい。 Spring使ってみよう。 Spring WebScoketあるじゃん使おう。 Spring Messagingの連携良さそう。 Stomp、SockJS?よく分かりません。(socket.ioがい…
初めに こんばんは。初めましての方は初めましてかもしれません。少し新年明けて思うところがあったので書いてみます。 ネガティブな話はできるだけ避けて。まず、自分の素性を軽く説明しておきます。新卒で小さいSIerに就職しました。 今は現場に常駐して作…
最初に さて、タイトルどおりなのですが 素振りするだけの記事だったりします。素振りしたライブラリはこちら Javassist cglib Byte Buddy Proxyと言えばjava.lang.reflect.Proxyですね。今回は次の2つのクラスについて、Proxyを作ってみます。 public stati…
APT、Pluggable Annotation Processorは皆さんお使いでしょうか。タイトルの通りですが、APTでimport文を取ってみます。gradleはとりあえずこんな感じです。 今回はAPTのProcessorを作るプロジェクトですがAPTを使います(グルグル目) 準備 apply plugin: '…
この記事はPayara Advent Calendar 2016の21日目の記事です。この記事はPayara MicroといいつつPayara Microの話はあんまりありません。 Payara Microの細かい話は蓮沼さんが書いていらっしゃるので、そちらをご覧頂ければと思います。この記事には何ら説明…