我有几个要注入的课程。例如,我有一个APIContentLoader类,用于从端点下载 JSON,然后将其存储到数据库中。我想将我为读取/写入数据库而制作的DatabaseManager类注入APIContentLoader。为了将DatabaseManager注入此类,我首先需要引用ApplicationContext,对吗?
这就是我现在设置它的方式:
public class APIContentLoader{
@Inject DatabaseManager dbm;
@Inject BaseApplication app;
public APIContentLoader(){
app.getAppComponent().inject(this);
// dbm now is ready for use
}
... // rest of class stuff
}
我的BaseApplication类扩展了标准的 Application 类。以这种方式注入对此类的BaseApplication引用是不好的做法吗?我知道对 ApplicationContext 进行静态引用并不是使其可用于这些非活动类的好方法。
我想最大的问题是,这种方法是否存在与静态引用相同的问题,因为内存管理和保持这些助手类的生命周期?