PlayFramework2.7で配列のクエリパラメータをFormモデルにbindFromRequestDataでマッピングすると最初の要素しか入らない問題。[]を付けるお作法と、[]無しでbindしてBeanバリデーションする自前の対処法をご紹介♪ PlayFramework2.7のプロジェクトでsbt-jacocoプラグインを使い、JUnitのカバレッジレポートをHTML形式で自動生成する方法。plugins.sbtへの追記とsbt jacocoでの実行、分岐を網羅していない場合の見方まで♪ sbtを使ってPlayFramework2.7のプロジェクトをJavaで作成する方法。Homebrewでのsbtのインストール、sbt newでのプロジェクト作成(ScalaとJavaの場合)、実行、生成されるディレクトリ構造、JUnitテストの実行まで♪
javacコマンドのコンパイルエラーログを日本語ではなく英語で出したいときは、-J-Duser.language=en オプションを付けるだけ。英語のエラーメッセージのほうがネットで調べやすいときに便利です♪ JavaでListやMapを操作するとUnsupportedOperationExceptionが出る原因は、Collections.emptyListやArrays.asListで作った固定長のコレクション。finalとは無関係です。new ArrayListでラップすれば操作できます♪ PlayFramework2.7でCookieに保存されるSession情報の名称や有効期限、HttpOnly、Secureなどの属性を変更する方法。デフォルト値の一覧と、application.confのplay.http.session配下のキーで上書きする手順です♪
VSCodeでSpringBootの開発環境を作る手順。Spring Boot Extension Packを入れてコマンドパレットからGradleプロジェクトを生成し、デバッグ起動まで。devtoolsを入れればホットリロードも効きます♪ VSCodeでGradleプロジェクトを動かす手順。Gradleのインストールとプロジェクト作成、tasks.jsonでVSCodeから実行、依存ライブラリ追加後に.classpathを更新してimport補完を効かせる方法まで♪ VSCodeでJavaの開発環境を作る手順。Java Extension Packの導入からjava.homeの設定、jEnvでの複数バージョン共存、import補完やブレークポイントでのデバッグまで実際に試しました♪ PlayFramework2.7のファイル送信フォームで10MB以上を送るとHttpStatus 413「Request Entity Too Large」が出る原因はデフォルトの上限値。application.confのplay.http.parser.maxDiskBufferを変更して広げます♪