gpt4 book ai didi

java - 我可以将依赖项注入(inject)不是由 DI 框架创建的对象吗

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:11:29 26 4
gpt4 key购买 nike

如何将依赖项注入(inject)不是由 DI 框架创建的对象?

我正在使用 Objectify 在 Google App Engine 上运行一个应用程序,因此 POJO 是在从数据存储区获取数据时由 Objectify 创建的。我个人喜欢使用方便的方法来获取相关对象,例如 car.getOwner().getName() 汽车对象是由 Objectify 创建的。 getOwner() 所有者的代码类似于

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

我可以用 ServiceLocator 改进它

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

但是我如何使用 DI 来做到这一点?

我查看了 Guice,但我只能想到将 Injector 放在单例中并从 getOwner 方法访问它。

我的想法有问题吗?

最佳答案

如果您使用的是 Objectify4,则可以子类化 ObjectifyFactory 并覆盖 construct() 方法。这将允许您注入(inject)您的实体类。

您可以在此处查看示例:https://github.com/stickfigure/motomapia/blob/master/java/com/motomapia/OfyFactory.java

关于java - 我可以将依赖项注入(inject)不是由 DI 框架创建的对象吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13124199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com