アプリケーションサーバ起動時にServletを起動するよう指定する
通常、Servletは初回アクセスがあった際にインスタンス化されるそうです。
外部リソース(設定ファイルとか)の読み込み等の初期化処理がある場合、
アプリケーションサーバ起動時にインスタンス化してしまいたいですねぇ。
これはweb.xmlに「load-on-startup」を指定することで実現可能です。
ただ、JavaEE7になってServletの設定がアノテーションで記述できるようになりました。
こんな感じで。
@WebServlet( name = "HogeServlet", urlPatterns = {"/*"}, loadOnStartup = 2) public class HogeServlet extends HttpServlet { ....
ソースに設定を記述することで「設定全体の見通しが悪くなる」というデメリットもあります。
そのためにServlet設計書(urlPatterns, loadOnStartup, 依存性、利用している外部リソースなど)を書くか?というと難しいところです。
初期段階では作れるけど、メンテナンスしてもらえなさそう。。。
web.xmlに一律記述すると「設定全体の見通し」の問題は解決しますが(xml読みづらい。。。)、
ソースからの視認性は下がります。
どっちがよいかは宗教の問題かもしれません。
だから2つの実装が許容されているのかも。
個人的にはアノテーションの方が好きです。 実装寄りかな。
ただ設計書も書きたいですね。設計段階では設計書で議論したい派です。
根拠はソースに求めるけど。
ソースからアノテーション部分の内容をgrepして綺麗に成形できるスキルがあるといいなぁ。
新品価格 |