0

我会在同一个服务类中注入两个 DAO,我这样做如下:

@Transactional
public class TestData {

    private final UserDao userDao;
    private final ExerciseDao exerciseDao;

    @Inject
    public TestData(final UserDao userDao,final ExerciseDao exerciseDao) {
        this.userDao = userDao;
        this.exerciseDao = exerciseDao;
    }
}

这是正确的方法吗?

事实上,我尝试创建一个 TestData 类来初始化 HSQL 数据库的一些记录。

所以,我注入了两个 DAO,然后我用它们来创建用户,它是练习。

当我尝试通过 HTTP URL 调用 getExercices 或 getUsers REST 服务时,出现了 500 状态的错误:

<h2>HTTP ERROR 500</h2> <p>Problem accessing Reason: <pre> Request failed.</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
4

1 回答 1

1

您想听听是否可以通过 1 个注释注入 2 个字段?

对的,这是可能的。你已经这样做了。

这是一个好习惯吗?

就个人而言,我更喜欢现场/二传手注射。在这种情况下,我不依赖于构造函数,并且可以防止不必要的代码。构造函数注入使您的代码与容器无关。无论您是否使用 CDI 容器(例如 Spring),您都必须使用这个特定的构造函数来初始化一个实例。

于 2016-07-29T20:54:08.193 回答