在方法中使用这种类型的代码行@PostConstruct
:
listA = myService.getMylist();
所以如果我们@PostConstruct
在托管 bean(JEE 应用程序)的方法中使用它,你会给我什么建议:
- 使用 try catch 块。
- 不要在
@PostConstruct
方法中使用这种类型的代码行。
因为当我测试我的应用程序时,我的数据库已满,但是当我交付它时,数据库必须是空的,并且将更新 de DB 的管理员。所以当然会有一些例外。
在方法中使用这种类型的代码行@PostConstruct
:
listA = myService.getMylist();
所以如果我们@PostConstruct
在托管 bean(JEE 应用程序)的方法中使用它,你会给我什么建议:
@PostConstruct
方法中使用这种类型的代码行。因为当我测试我的应用程序时,我的数据库已满,但是当我交付它时,数据库必须是空的,并且将更新 de DB 的管理员。所以当然会有一些例外。
在几乎所有情况下,最好的做法是在没有元素的情况下初始化一个空集合,而不是仅仅将它的引用指向 null。因此,如果您正在设计服务层,则不要返回空集合 - 而是返回空集合。此外,如果这是您设计的必备条件,即列表不能为空(这意味着它是不可接受的条件),则您必须抛出错误以指示无效条件并停止 bean 的初始化。
这真的取决于你的设置。任何一个都是合适的,只要处理了任何异常。这可以简单地遍历每个项目的列表,如果没有项目(或为空),则对该对象不执行任何操作。如果它是没有项目返回的实际错误状态(即页面无法在没有该项目的情况下运行),则抛出异常。
也许在从数据库获取数据的代码中抛出异常会更好(例如在服务方法中,而不是在 DAO 中,或者您拥有的任何等效代码中)?这样您就可以从托管 bean 中删除功能,并可以在您的框架内处理它。或者更适合 List 集合,只需确保在返回它之前实例化它。(即List<Object> listA = new ArrayList<Object>; ...*populate list* .... return listA;
)然后当你迭代时,什么都不会被调用。