我会在同一个服务类中注入两个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/>
答案 0 :(得分:1)
您是否想知道是否可以通过1个注释注入2个字段?
是的,有可能。你已经做到了。
这是一个好习惯吗?
就个人而言,我更喜欢野外/二次注射。在这种情况下,我不依赖于构造函数,可以防止不必要的代码。构造函数注入使您的代码与容器无关。无论您是否使用CDI容器(例如Spring),都必须使用此特定构造函数初始化实例。