Контроллер JSF, Сервис и DAO
Я пытаюсь привыкнуть к тому, как JSF работает в отношении доступа к данным (из весеннего фона)
Я создаю простой пример, который ведет список пользователей, у меня есть что-то вроде
<h:dataTable value="#{userListController.userList}" var="u">
<h:column>#{u.userId}</h:column>
<h:column>#{u.userName}</h:column>
</h:dataTable>
Тогда у «контроллера» есть что-то вроде
@Named(value = "userListController")
@SessionScoped
public class UserListController {
@EJB
private UserListService userListService;
private List<User> userList;
public List<User> getUserList() {
userList = userListService.getUsers();
return userList;
}
}
И «служба» (хотя это больше похоже на DAO) имеет
public class UserListService {
@PersistenceContext
private EntityManager em;
public List<User> getUsers() {
Query query = em.createQuery("SELECT u from User as u");
return query.getResultList();
}
}
Это правильный способ делать вещи? Правильна ли моя терминология? «Сервис» больше напоминает DAO? И контроллер чувствует, что он выполняет часть работы сервиса.