JSFに関して拠り所としてる書籍は金魚本と以下の本です。


この本はCDIについても記述があって、各項目レベルで「JSF」「CDI」とか書いてあるので便利です。英語ですが(^^;
で、今日はApplicationScopedに関してです。
View寄りの情報でアプリケーション起動時に取得してキャッシュしておきたいデータが出たため、初めてApplicationScopedを使ってみました。が…JSFの管理対象Bean(@ManagedBean)にはeager属性が存在していて、それをtrueにすることで実現できるのですが、なぜかCDIの管理対象Bean(@Named)にはeager属性がなく、同じことができませんでした。
この辺りの違いに少しとまどいます。
同じようなことを考える人はいるようで、StackOverflowで以下のようなQ&Aをみつけました。
http://stackoverflow.com/questions/7828987/jsf-named-bean-eager-application-scoped-aka-managedbeaneager-true
回答をみるとCDIのextensionを使えばできる、ような記述がありますが、今はまだあまりトリッキー(なのかな?)なことをできるほど力がないので、なるべく標準機能で実装したいです。
ということで、今まで基本的にバックBeanはCDIで統一してきたのですが、このケースだけはJSF管理対象を利用することにしました。