MyBatisでストアドプロシージャを実行する
(もしかしたら以前どこかで書いたかも…)
MyBatisでストアドプロシージャを実行する必要に迫られたことがありましたが、オフィシャルリファレンスを見てもどこにもストアドプロシージャについて記述がないので困った記憶をふと思い出しました。
…td-agentにプロキシを設定する
|
|
で編集画面を開き、次を記述:
[Service]
Environment="HTTP_PROXY=http://myproxy.example.com:8080"
…
finalと実質finalの違い
https://ja.stackoverflow.com/a/63099/2808 を見ていて気づいたのですが、 実質final というのは脳内(コンパイラ)で final を補完してくれる、というような処理が行われるわけではないのですね。
Spring Bootでは -parameters オプションは有効化されている
MyBatisの設定項目として useActualParamName というものがあります。マニュアルの説明によると、
ステートメントの引数を参照する際、メソッドシグネチャで宣言されている名前で参照できるようにします。 このオプションを有効にする場合、プロジェクトを Java 8 (コンパイラオプション -parameters 付き)でコンパイルする必要があります。 (導入されたバージョン: 3.4.1)
…
Hello Project Panama
追記: Hello Project Panama, on Java17 に Java17 版を記載しました。
はじめに
今個人的にすごく知りたいのはこちらです。ご回答よろしくお願いします!!!!
- 動的確保したメモリー領域の解放戦略 - スタック・オーバーフロー
(質問読んでもらえれば(というかタイトル見てもらえれば)わかると思うんですけど、別に Java がわからん、とか Rust がわからん、という質問では無いです。念の為。もちろん Java も Rust もわからない(多分コード正しくない)ですけどそれは別の話。)
…Nodeのnative moduleをRustで書いてみる(Neon)
RustプログラムのGUIにElectronを使うことを考えています。
その前調査としてNodeのネイティブモジュールとしてRustプログラムを利用できるようにする Neon というツールを使ってHello, worldしてみることにしました。
…`fluent-plugin-bigquery` のパラメータ `request_timeout_sec` 、未設定の場合はどうなるの?
要旨
fluent-plugin-bigquery の README を読んでいると、 request_timeout_sec のデフォルト値が nil になっている(その下の request_open_timeout_sec には 60 が設定されているのに)のが気になりました。
結論としては、 request_timeout_sec は最終的に httpclient の send_timeout 及び receive_timeout パラメータとして利用され、未設定の場合は そこで指定されているデフォルト値である send_timeout = 120, receive_timeout = 60 が採用されるようです。
Spring BootのRestTemplateで text/plain;Windows-31J なRESTレスポンスを処理する
要旨
JSONを返してくるのだけれどMIME typeが text/plain;charset=Windows-31J なレスポンスを、RestTemplateで扱いたい。
@GetMapping(produces = "text/plain;charset=Windows-31J")
public String response() {
return "{\"text\": \"こんにちは世界\" }";
}
対応としては、 JSonFactory#createParser(InputStream) をオーバライドして InputStreamReader 用のパーサが利用されるようにすれば良い。
reqwest使おうとしたけどよくわからん
はじめに
年の瀬にスクレイピングしたくなって Rust 勉強し始めたけれど、直前に reqwest ライブラリに更新が入ったみたいでコピペコーディングが阻まれた。
知っとかないといけなかったこと
- 今回の更新 reqwest 0.10.0 で async/await がデフォルトになった(ので従来のサンプルコードは動かなくなった)。
- Cargo には feature flag(feature toggle) 機能があって、reqwest やら(オフィシャルサンプルで利用している)tokio やらもこれを利用している。
- (async/await を使わない、従来の)blocking 版をどうやって使うのか全然わからなかったけれど、features で明示的に指定する必要があった。
- オフィシャルサンプルを動かすにしてもこれを知っておかないといけなかった。
- tokioを用いる必要があった。
サンプルを動かすには
…Rustでライブラリを作成する
はじめに
他の言語で言うところの"ライブラリ"は、Rustでは “ライブラリクレート”(library crate) と呼ぶようです。
…RestTemplateBuilderに関する覚書
RestTemplateBuilder
- RestTemplate は Spring Framework(spring-web)だけれども RestTemplateBuilder は Spring Boot。
- Java の世界の
なんちゃらBuilder(StringBuilderとか Lombok のBuilderアノテーションとか、ざっくり総称で Effective Java 版 Builder とでも呼ぶべきか)の使い方は、「まずbuilderのインスタンスを生成します」から始まるのでRestTempalteBuilderもそれだと思っていた。- つまり、このクラスインスタンスは Spring Boot のデフォルト状態でインジェクション可能だけれども、このインジェクションされた
RestTempalteBuilderインスタンスのスコープは(Spring のデフォルトであるところの)singleton-scope ではない と思っていた。- だって
builderインスタンスが singleton-scope なら、あるbeanでbuilderに設定したものが他所のbeanにも波及しちゃうじゃない。
- だって
- つまり、このクラスインスタンスは Spring Boot のデフォルト状態でインジェクション可能だけれども、このインジェクションされた
- けど
ResttemplateAutoConfigurationの Bean 定義部分どう見ても singleton-scope にしか見えない。何か自分の知らない記法(あるいは暗黙的解釈)がなにかまだあるのか? また 何か Spring マジックが発動しているのか…?
と思ってたけど、RestTemplateBuilderの状態設定メソッド(このへん)見て気づいた、 設定メソッドの中で new RestTemplateBuilder() やっとるんかーい!
https://hatena.ne.jp/ にアクセスできてるとお思いで?
はじめに: 試した環境
Windows10 の現時点での最新安定版 Google Chrome および Firefox を用いました。
- Google Chrome 78.0.3904.108
- Firefox 70.0.1
また実行に際しては、キャッシュ等の影響を避けるため、Chrome ではゲストモード、Firefox では今回新規作成したプロファイルで確認しました。
…Spring Boot のプロパティではkebab-formatが推奨されている
Relaxed Binding 2.0 という仕組みにより
spring.jpa.database-platform=mysql
spring.jpa.databasePlatform=mysql
spring.JPA.database_platform=mysql
いずれの形式でも正しくバインドできる。
が、公式ドキュメントからは一番上の database-platform が推奨されているように読み取れる。
Relaxed binding - Spring Boot Configuration Binding:
…