2017/11/28
お勧め記事
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
2017/11/27
Speedmentさんが内部的にClass#forName(String)でJDBCのDriverを直接呼び出している件について。
PostgresqlDbmsType#getDriverName()が
AbstractDbmsType#isSupported()から呼ばれてる
まぁ、その結果を返すわけではないのでDriverManager#registeredDriversの登録処理起動だけみたいだけど。
2017/08/01
お勧め記事
Awesome Java:素晴らしいJavaフレームワーク・ライブラリ・ソフトウェアの数々
2017/07/31
javax.crypto.Cipher
Cipher (Java Platform SE8)
暗号化、複合の処理を透過的に行うためのフレームワークコアである。
基本的にはCipher#doFinal(byte[])
にて暗号化/複合結果を取得する。
Cipher#doFinal(byte[], int, int, byte[], int)
は引数1の暗号化/複合結果を、引数4の引数5以降に出力する。この際、引数1と引数4は同一の参照であることをAPIとして許容しているため、メモリ空間の節約に役立つ。
また、連続したデータを取り扱う場合には同様にCipher#update(byte[])
などを使用する必要があるが、最終段階でCipher#doFinal()
などを呼び出す必要がある。
javax.crypto.CipherInputStream / javax.crypto.CipherOutputStream
CipherInputStream (Java Platform SE8)
CipherOutputStream (Java Platform SE8)
上記Cipherを使用したI/O Streamクラス、ストリーム処理が必要な場合やデータサイズが大きい場合にはこちらが楽。
ファイルシステムの上限を超えるようなデータを処理する場合にはどちらにせよ一考する必要があるが。