从Service调用DAO方法时出现问题



我有一个DAO,它有这样的方法:

class AbcService 
{
  private AbcDAO isntance;
  public void getStuff()
  {
    instance.getQueryResult();
  }
}

现在,如果从任何地方调用这个方法,它将给出一个NullPointerException实例调用查询方法。尽管如此,这个代码在项目中使用了很长一段时间,我会在称之为不正确之前三思而后行。有什么方法可以访问这个代码吗?这是标准做法吗?

如果您有isntance的setter,则只需在调用getStuff之前调用它即可。这是标准的(尽管有些人会说所有需要的字段都应该在构造函数中设置)。

这个答案只适用于您正在使用springbean并且它比您的问题更广泛的情况。但我想这对你会有用的

是的,当您将它用作弹簧bean时,这通常是常用的做法。因此,在调用这个方法之前,您需要确保这个springbean已经实例化。基本上,这是通过从ApplicationContext获取spring bean或调用方类本身从其父bean....

接收该bean的实例来完成的。一般的做法是通过在web.xml中定义contextloaderlistener来加载应用程序上下文。有关如何操作的更多信息,请参阅http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/context/ContextLoaderListener.html

我认为对象instance通过Spring依赖注入注入到AbcService。请在您的项目中搜索任何具有bean定义中提到的AbcService的完全限定类名的"。xml"文件。

最新更新