続・JavaでさくさくWebアプリ開発
たぶん前回のエントリ見た人の半分は気がついてると思うけどクラスパスとかいろいろとスキャンしたりするようなApplicationを継承したクラスはいくつも用意されている。
探し方
Application app = new
と入力した状態でCTRL+SPACEを押すとApplicationを継承したクラスがいくつも出てくるのでそれであたりをつける。
単純な置き換え系
HogeApplication app = new HogeApplication(Hoge.class);
を
ClassNamesResourceConfig app = new ClassNamesResourceConfig(Hoge.class);
にかえてもよい。こちらはClassを引数に取るほかにもクラスの名前を文字列で渡したりすることもできる。
いちいち自分で作ることもないのだ。
クラスパスから検索
ClasspathResourceConfig app = new ClasspathResourceConfig();
ただし、なにもしぼらないとクラスパスすべて見に行くため起動に時間がかかるようになる。
ライブラリが増えれば増えるほど遅くなる。
実測でこれ以外はすべて650msくらいで起動するが、これだけはなんと1.1秒に!全然さくさくじゃない!
パッケージ指定
たぶんこれが一番使いやすい。
PackagesResourceConfig app = new PackagesResourceConfig("");
からの文字列でも十分高速で速度は全然変わらなかった。
これによってサーバーの起動時間はかわらない。
パッケージは省略できるけど、ファイルが増えてきたらできるだけ絞ったほうがいいのかもね。起動が1秒を超えるかもしれないし。
というわけで、1つだけ1秒切ることはなかったけど、忍耐力が高い人ならたぶん大丈夫。