@Inject of multiple DAO

时间:2016-07-29 20:42:11

标签: spring rest dao data-access-object

我会在同一个服务类中注入两个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,然后我用它们来创建用户和它的练习。

当我试图调用getExercices或getUsers REST服务时,会出现HTTP URL错误,显示500状态错误:

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

1 个答案:

答案 0 :(得分:1)

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

是的,有可能。你已经做到了。

这是一个好习惯吗?

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