我可以将依赖项注入不是由DI框架创建的对象



我如何将依赖项注入di Framework不创建的对象?

我正在使用Objectify在Google App Engine上运行一个应用程序,因此Pojos是通过Ogginaly创建数据时在数据存储中获取数据时创建的。我个人喜欢使用便利的方法来获取相关对象,例如car.getowner()。getName()CAR对象是由Objectify创建的。getowner()所有者的代码将是

public Person getOwner(){
    return PersonService.getById(this.ownerId);
}

我可以通过服务式

来改进它
public Person getOwner(){
    return ServiceLocator.getService(PersonService.class).getById(this.ownerId);
}

但是我该如何使用di?

我看着guice,但我只能想到将喷油器放在单例中,然后从getowner方法访问它。

我的想法有缺陷?

如果您使用的是Objectify4,则可以亚克拉ObjectifyFactory并覆盖construct()方法。这将使您可以注入实体课程。

您可以在此处看到一个示例:https://github.com/stickfigure/motomapia/blob/master/java/java/com/motomapia/ofyfactory.java

我能想到的唯一解决方案是加载时间编织,我引用:

上下文:加载时间 - 编织者寄存器extackj的加载时间编织器 当前的classloader。因此,不仅会针对春豆,而且 但是匹配定义的classloader中加载的任何类 尖端。

,但我认为这将与GAE限制相抵触,但我还没有在GAE中尝试过。

最新更新