Я закодировал веб-сайт с использованием Spring MVC, и теперь я хочу запрограммировать его конец (например, панель мониторинга или CMS), чтобы администраторы могли ее управлять.Повторное использование DAO в другом веб-приложении
Поскольку я кодировал все DAO для интерфейса, я хотел бы повторно использовать их для задней части (поскольку таблицы DB, очевидно, одинаковы, передняя и задняя части имеют один и тот же контекст сохранения).
Моя идея состояла в том, чтобы закодировать задний конец как новое веб-приложение, в котором объекты DAO и домена были экспортированы с передней стороны в виде файла jar и импортированы в проект задней части. Постоянство управляется JPA и Hibernate и каждый класс DAO выглядит следующим образом:
@Repository
public class UserDao {
private EntityManager em;
// ... Methods...
@PersistenceContext
void setEntityManager(EntityManager entityManager) {
this.em = entityManager;
}
}
конфигурация живучесть (т.е. JPA + Hibernate + MySQL) от заднего конца сайта точно так же, как и для переднего конца , Я ожидал, что эта конфигурация будет введена в DAO, которые импортируются в JAR-файл, но это, очевидно, не происходит. Everytime я пытаюсь использовать любого из методов в любом из DAO, я получаю исключение, подобное:
org.hibernate.hql.ast.QuerySyntaxException: UserJpa не отображается [SELECT FROM U UserJpa ˙U где и. alias =: alias AND u.closed = false]
Есть ли решение этой проблемы? Или есть лучший подход к тому, что я хочу достичь (т. Е. Кодовому концу, используя те же DAO переднего конца)?
Большое спасибо!
Благодарим вас за ответ, @duffymo. Хорошо, я начал с этого делать. Я уже использую Spring Security для интерфейса, поскольку большая часть веб-сайта предназначена только для зарегистрированных пользователей. Но тогда я не знал, как правильно настроить Spring Security. Например, если я не вошел в систему, example.com/dashboard/manage-users следует перенаправить на example.com/dashboard/login. Пока example.com/my-profile должен перенаправить на example.com/login (или example.com/registration). Как я могу это сделать..?Благодаря! – satoshi
@ сатоши, это действительно хороший вопрос. Я думаю, вы должны опубликовать это как отдельный вопрос. Вы получите более качественные ответы, и это поможет другим людям, у которых есть подобные проблемы, легче! (Как и я, меня очень интересовал бы этот ответ ;-)) –