我有一個@SessionScoped ApplicationBean用於存儲用戶登錄信息併成功地將它注入到其他託管的bean中,正如告知here。如何在DAO層使用會話變量?
我也使用我的Dao接口通過@ManagedProperty註釋,但我覺得我的用法有問題。
假設在用戶登錄時存在具有公共方法listStocks(String companyCode)和companyCode的StockDao存儲在ApplicationBean中。
所以我的託管bean調用這樣
@ManagedProperty(value = "#{appBean}")
ApplicationBean appBean;
public void getStockList() {
return stockDao.listStocks(appBean.getCompanyCode());
}
DAO層這到處重複,其中SQL需要企業編碼。
我覺得這將是更好的,如果我的DAO層已經知道企業編碼(這意味着注入ApplicationBean中進入的DAO),我應該用我的方法,如下面
public void getStockList() {
return stockDao.listStocks();
}
所以現在的問題是,這些API設計更好,如果你爲第二個投票,我怎樣才能將@SessionScoped beans注入到DAO層?