@ Ввод нескольких DAO
Я бы вставил два 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-адрес проблем службы 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/>
1 ответ
Вы хотите услышать, возможно ли ввести 2 поля по 1 аннотации?
Да, это возможно. Вы уже сделали это.
Это хорошая практика?
Лично я предпочитаю инъекции поля / сеттера. В этом случае я не зависим от конструкторов и могу предотвратить ненужный код. Внедрение в конструктор делает ваш код независимым от контейнера. Используете ли вы контейнер CDI (например, Spring) или нет, вы должны инициализировать экземпляр, используя этот конкретный конструктор.