gpt4 book ai didi

java - 数据库模型的依赖注入(inject)

转载 作者:可可西里 更新时间:2023-11-01 10:50:29 26 4
gpt4 key购买 nike

我正在使用 ORM/ODM ( morphia ) 来管理我的模型,但我遇到了一个问题:

模型的构造函数仅在创建对象时调用 (new MyObject(dep1, dep2)),而不会在从数据库加载时调用 (db.get( id)).

如何将不可序列化的依赖项注入(inject)到 ORM 管理的对象中?

我一直在将依赖项直接注入(inject)到任何需要它的方法中。

public void doSomething(UserDAO userDAO) { ... }

但这很快就会导致丑陋的代码。有没有更好的办法?

最佳答案

如果你想在加载它们之后为你的实体设置不可序列化的依赖,那么你可以使用生命周期注解@PostLoad [Life Cycle Methods] .

例子

@PostLoad
void postLoad() {
userDAO = // e.g. new UserDAO() or UserDAO.getInstance();
}

虽然这是可能的,但我并不是说这是一个好方法。您应该考虑将您的实体(领域对象)和服务功能(应用层)分开(参见 SoC )。

但是不要误会我的意思,这并不意味着您的域对象根本不应该包含任何逻辑。

关于java - 数据库模型的依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41401289/

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