ChartBean
PrimeFaces のサンプルを使用しようとしています。これはビューです:
<h:form>
<p:layoutUnit position="center">
<p:lineChart id="linear" value="#{chartBean.linearModel}" legendPosition="e"
title="Linear Chart" minY="0" maxY="1000" style="height:600px"/>
</p:layoutUnit>
</h:form>
これは豆です:
@Named
@RequestScoped
public class ChartBean implements Serializable {
private CartesianChartModel categoryModel;
private CartesianChartModel linearModel;
public ChartBean() {
System.out.println("ChartBean constructed");
createCategoryModel();
createLinearModel();
}
// ...
}
実行中に、この Bean のコンストラクターがページを開くときに 2 回呼び出されることに気付きました。ログには次のように表示されます。
INFO: ChartBean が構築されました
INFO: ChartBean が構築されました
そのため、Bean は 2 回インスタンス化されました。これはどのように発生し、どうすれば回避できますか? UI に表示するデータを取得するために DB と対話していますが、この方法ではデータが不必要に 2 回フェッチされます。