■Spring Bootでアノテーションエラーは、
mavenでinstallコマンドを実行していないからの場合がある。
pom.xmlにプロジェクトが必要とする各種ライブラリの宣言が書かれているが、初期状態ではダウンロードされていない状態なのでローカル環境におとす必要がある。それがmvn install。
■JSON→Javaオブジェクトとか、Javaオブジェクト→Javaオブジェクトに変換する場合は、jacksonというオブジェクトマッパーが便利。
■オブジェクトマッパーが使えない場合、セッター・ゲッターで詰め替えすることになるが、その処理はDTOクラス内にstaticメソッドとして書いた方が良い。
■テーブルをSELECTするAPI、関数では、処理の中で参照しなくとも、とりあえず全カラムを取得しておいた方が拡張性が高い。
■byte[]の要素1つは1バイトである。byte型は1バイト。
■HttpのGETメソッドにリクエストボディはつくれない。
■環境変数を設定・変更したらコマンドプロンプトは再起動が必要。
■node.jsをインストールしたら、その中にnpmが含まれている。
■pom.xmlの<scope>で適用範囲を限定できる。
例:
<scope>runtime</scope>
<scope>test</scope>
■pomに依存関係を追加するときは、Googleでmaven repositoryのページに行き、artifact idで検索すると最新のバージョン情報が見られる。ここの情報をpom.xmlにそのままコピペすればOK。
追加したらmvn install実行。
■リモートリポジトリからダウンロードしてきたモジュールは、.m2フォルダに格納される。
.m2のsettings.xmlにプロキシ設定等を追記する。
.m2配下にjarが落ちている。内部的な仕組みはzipと同じなので、拡張子をzipに変えて解凍すれば、中身のクラスファイルを見ることができる。
■mvn installしても解決しない場合は、バージョンを変える対応をしてみる。
■Javaではstream APIがあるので、Listや配列について安易にfor文を使わないこと。
■HTML Canvas→ピクセルマップ
HTML SVG→ベクトルマップ:解像度に依存しないが、グラデーションを描くのには適していない。
■DTOの各プロパティの初期値セットを数行にわたり行う場合は、匿名クラスのイニシャライザを推奨。
※引数の数が少ないのであれば、そもそもコンストラクタとして書いた方が良い。
■階層構造を持ち、かつ再利用性が乏しいDTOの場合は、インナークラスを使うとよい。
■lsofコマンド:開いているファイルを一覧表示する。
■非同期の処理では、時系列に事象を並べて整理することが大事。
■SQLでorder byなしの場合、取得順序はランダムである。
■Javaのパフォーマンスを向上させたい場合の方法
デフォルトの規定値を使用量が超えた場合、ヒープメモリを確保する動きになってリソースを食う。
この場合、メモリ使用量を拡張する。その代わり、jarの起動が遅くなる。
メモリ使用量を拡張した直後、初回の実行は特に遅い。2回目からが本チャン。