プロパティ ファイルではなく、データベースからメッセージを取得するリソース バンドルを構築しようとしています。ResourceBundle、ResourceBundle.Control、および ListResourceBundle を拡張するいくつかのテストを行いましたが、正しい道を進んでいると思います。
ResourceBundle 実装からメッセージを取得するために、実際のデータベースにクエリを実行する必要がある時点に到達しました。クエリを実行し、キー、メッセージ、およびロケールを格納するオブジェクトをインスタンス化するために、EJB レイヤーにあるすべての JPA インフラストラクチャを活用したいと考えています。したがって、セッション Bean を ResourceBundle に @EJB インジェクトできれば完璧ですが、それを行う方法が見つかりません。
ここに私のResourceBundleコードがあります:
@ManagedBean(eager=true)
@ApplicationScoped
public class ResourceDicWeb extends ListResourceBundle {
@EJB
private MyDAO myDAO;
@Override
protected Object[][] getContents() {
List<DicWeb> dicWeb = updateDictionary();
Object[][] content = new Object[dicWeb.size()][2];
for(int i = 0; i <= dicWeb.size(); i++) {
content[i][0] = dicWeb.get(i).getAtrKey();
content[i][1] = dicWeb.get(i).getAtrMessage();
}
return content;
}
private List<DicWeb> updateDictionary() {
return myDAO.fetchDictionary(); // at this point myDAO is always null
}
}
私の次のステップは、昔ながらの jdbc を使用してリソースバンドルから直接データベース接続を作成することですが、これは間違いなく最後のオプションです。
乾杯!