gpt4 book ai didi

java - 如何在DAO层使用session变量?

转载 作者:行者123 更新时间:2023-11-30 07:19:17 36 4
gpt4 key购买 nike

我有一个@SessionScoped ApplicationBean,用于存储用户登录信息并将其成功注入(inject)到其他托管 bean 中,如前所述 here .

我也通过@ManagedProperty 注释使用我的 Dao 接口(interface),但我觉得我的用法有问题。

假设有一个 StockDao 有一个公共(public)方法 listStocks(String companyCode) 并且 companyCode 在用户登录时存储在 ApplicationBean 中。

所以我的托管 bean 是这样调用 DAO 层的

@ManagedProperty(value = "#{appBean}")
ApplicationBean appBean;

public void getStockList() {
return stockDao.listStocks(appBean.getCompanyCode());
}

这会在 sql 需要 companyCode 的任何地方重复。

我觉得如果我的 DAO 层知道 companyCode(这意味着将 ApplicationBean 注入(inject) DAO)会更好,我应该像下面这样使用我的方法

public void getStockList() {    
return stockDao.listStocks();
}

所以问题是,哪种 API 设计会更好,如果您投票给第二种,我如何将 @SessionScoped bean 注入(inject) DAO 层?

最佳答案

对我来说,第一种方法更简洁,我不想将 DAO 层与 session 托管 bean 联系起来。

我将我的一般工件,尤其是 daos 和数据模型打包为一个单独的 Jar,没有任何外部依赖这样我就可以在不做任何修改的情况下使用它,无论是 Web 应用程序、独立还是 EJB

这使您的 Dao 独立于公司代码的获取方式/位置

关于java - 如何在DAO层使用session变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14725987/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com