【发布时间】:2023-04-02 06:13:01
【问题描述】:
我正在使用 ORM/ODM (morphia) 来管理我的模型,但我遇到了问题:
模型的构造函数仅在创建对象时调用(new MyObject(dep1, dep2)),从数据库加载时不调用(db.get(id))。
如何将不可序列化的依赖注入到 ORM 管理的对象中?
我一直将依赖项直接注入到任何需要它的方法中,即。
public void doSomething(UserDAO userDAO) { ... }
但这很快就会导致丑陋的代码。有没有更好的办法?
【问题讨论】:
-
通常你不会将 DAO 交给域对象。操作 DAO 的代码宁愿驻留在应用程序适当架构层中的某些服务中。在这种情况下,您可以将 DAO 注入到服务中,并将其与服务代码中的域对象/模型一起使用。如果你必须保持架构不变,让我们看看是否有人知道一个巧妙的技巧来影响 morphia 中的对象创建。
-
这个网站以提问回答和接受流程为生。由于您是新来的,请不要忘记接受答案,请参阅meta.stackexchange.com/questions/5234/… 了解更多详情。
标签: java mongodb design-patterns dependency-injection orm