なんじゃくにっき

プログラミングの話題中心。

No More XML!

 最近Scalaばっかり触っていたらJavaの書き方を忘れてしまった。
どれくらい酷いかっていうと型推論が効かなくてイラっとくるくらいのプチ重症。
 
 そんなわけで、リハビリがてらTom猫7.0を使ってServlet 3.0をちょっとだけ触ってみた。
Servlet 3.0ではweb.xmlは必須ではなくてwebfragment.xmlに記述したり、アノテーションで記述したりできる。
アノテーションを使ってXMLを書かずにT2frameworkを(半ば無理矢理に)動かしてみた。

package org.t2framework.t2.filter;

import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import org.t2framework.t2.filter.T2Filter;

@WebFilter(
urlPatterns = {"/*"},
initParams = {
@WebInitParam(name="t2.rootpackage", value="page")
}
)
public class ExtendedFilter extends T2Filter {}

 
 T2Filterをextendしたfilterに@WebFilterと@WebInitParamを記述することで強引に動かせる。
でもあまりスマートではないなあ。
フレームワークを使う際はweb.xmlかwebfragment.xmlに記述したほうがよさそう。
フレームワーク自体がwebfragment.xmlを内包するのは主流になる・・のか?
自作Servletの場合はアノテーション使うのもありかも。
Filterの場合はアノテーション使った場合どうやって実行の優先順位決めるのやら。