我有一个DAO,其方法如下:
class AbcService
{
private AbcDAO isntance;
public void getStuff()
{
instance.getQueryResult();
}
}
现在,如果从任何地方调用此方法,它将提供NullPointerException,其中实例调用查询方法。 这个代码在很长一段时间内仍然在项目中使用,在调用它之前我会三思而后行。是否有一些方法可以访问此代码。这是标准做法吗?
答案 0 :(得分:1)
如果您有isntance
的设置器,则只需在调用getStuff
之前调用它。这是标准的(尽管有些人会说所有需要的字段都应该在构造函数中设置。
答案 1 :(得分:1)
这个答案适用于你使用springbean而且它比你的问题更广泛..但我想这会对你有用
是的,当您将它用作弹簧豆时,这通常是习惯。因此,在调用此方法之前,您需要确保实例化此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
答案 2 :(得分:1)
我认为对象instance
通过Spring Dependency Injection 注入到AbcService
。请在项目中搜索任何“.xml”文件,该文件的bean定义中提到了完全限定的AbcService类名。