如何将依赖项注入到不是由di框架创建的对象中?
我正在使用objectify在google app engine上运行一个应用程序,因此当从数据存储中获取数据时,objectify会创建pojo。就我个人而言,我喜欢使用方便的方法来获取相关对象,比如car.getowner().getname(),car对象是由objectify创建的。getowner()owner的代码如下
public Person getOwner(){
return PersonService.getById(this.ownerId);
}
我可以用服务定位器来改进它
public Person getOwner(){
return ServiceLocator.getService(PersonService.class).getById(this.ownerId);
}
但我该怎么对付狄?
我查看了guice,但我只能考虑将注入器放在一个单例中,并从getowner方法访问它。
我的想法有缺陷吗?
最佳答案
如果使用的是objectify4,则可以将objectifyfactory子类化并重写construct()方法。这将允许您注入实体类。
你可以在这里看到一个例子:https://github.com/stickfigure/motomapia/blob/master/java/com/motomapia/OfyFactory.java
关于java - 我可以将依赖项注入(inject)到非DI框架创建的对象中吗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13124199/