powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по REST
10 сообщений из 10, страница 1 из 1
Вопрос по REST
    #38974593
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня связка такая Spring+Hibernate+JSF. Хочу сделать api чтобы можно было с другого приложения использовать. Пробую разбираться с jersey. Пока мне нужна по сути работа с Hibernate. Например у меня есть AccountRepository. Я могу на его базе создать api? Просто аннотациями указываем например и одновременно доступ и через api и обычный вызов. Так можно сделать?

Но вот думаю если даже получится так сделать что на счет того если нужно будет не только Hibernate. Придется делать в разных местах что не гуд но зато дублирования будет меньше. В общем я в замешательстве. Подскажите кто сталкивался как лучше?
...
Рейтинг: 0 / 0
Вопрос по REST
    #38974802
ARGB32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А чем не устраивает связка Spring MVC + Spring Data?
Обращения к данным лучше все же через сервис организовать, а не непосредственно в repository.
...
Рейтинг: 0 / 0
Вопрос по REST
    #38974912
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9,

Вам нужно больше абстрактных слоёв. Есть слой JSF - это View. Есть слой, который предоставляет API для JSF что-то вроде контроллера. Есть слой бизнес-логики (Service, или Transaction Script) это сама функциональность приложения в виде Java API.
И есть слой Repository, который предоставляет доступ к данным.

Давать доступ к репозиторию особого смысла нет. Во-первых тогда бизнес-логику нужно копипастить. Во-вторых микс фреймверков отвечающих за разные слои не всегда просто запустить на одном слое\классе.

Вам нужен отдельный "Фасад", который будет вызывать слой бизнес-логики, но при этом скрывать лишнюю функциональность и (как это будет по-русски, to expose) функциональность бизнес-логики в виде REST.
...
Рейтинг: 0 / 0
Вопрос по REST
    #38976189
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz , у меня сейчас как идет. Я в JSF Managed Bean (типа контроллера) делаю всю бизнес логику. Когда приложение на уровне CRUD то ее очень мало. Вы говорите что нужен отдельный слой (Service, или Transaction Script). А что в этом слое должно быть? Просто я раньше делал слой BusinessObjects. И у меня там было тоже самое что и в Repository. Только единственное если сложная операция по получению данных например "найти и удалить". То я делал это в BusinessObjects. Потом этот слой удалил и стал это же делать в Repository и не парится. Так получилось гораздо проще.

А что должно быть в слое Service, или Transaction Script? Логика + Repository? Например авторизация через БД.

И как я понял например если я хочу авторизоваться через api то вызову из слоя бизнес логики в классе который отвечает за rest. По сути будет только дублирование вызова.
...
Рейтинг: 0 / 0
Вопрос по REST
    #38976206
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9,
JSF это как десктоп. Он всё забирает на себя, и для деления на слои ничего не остаётся.
Т.е. выделить в нём отдельное API да ещё REST - проблематично.
IMHO
...
Рейтинг: 0 / 0
Вопрос по REST
    #38976207
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9,

Это сложно объяснить на пальцах. Надо смотреть код. Классическая ошибка заключается в том что новички пишут код где он пишется. И бизнес-логика часто живет либо в контроллере, либо в репозитории. Поэтому сам слой бизнес-логики вырождается и смысла в нем не видно.
Но вот когда появляется задача вроде вашей - отдельный доступ к данным, и когда приходится копи-пастить части кода из контроллера в новый API, тогда и становится заметна логика, которую можно и нужно пере-использовать.
Но если у вас эта логика в репозитории, то вы можете этого даже не заметить.
...
Рейтинг: 0 / 0
Вопрос по REST
    #38976209
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9Хочу сделать api чтобы можно было с другого приложения использовать.
опиши задачу выше и крупнее.
Что за приложения с точки зрения БЛ\бизнеса.
...
Рейтинг: 0 / 0
Вопрос по REST
    #38976399
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, у меня логика в Managed Bean. В Repository только методы по работе с БД. Например:

Код: java
1.
List<User> findAndDeleteByGroup(Group group){//...}



Смотри хороший пример: http://www.onlinetechvision.com/jsf2-primefaces3-spring3-hibernate4-integration-project/

Там как ты говоришь есть слой Service. Но по сути он дублирует слой Repository. Я про это и говорю что по этому его и убрал поскольку были дубли а логику типа авторизации сделал в Managed Bean. Я еще к тому же активно использую триггеры (если в таблицу А добавить то в B изменить) и получается что в Repository работаешь только с конкретной таблицей.

Единственное что я могу припомнить так это авторизация которую можно вынести в слой Service. Да что тут говорить если у меня даже Managed Beans пустые почти все. Активно использую генерируемые классы.

Petro123, да по сути просто есть админка с CRUD. Нужно данные которые добавляет пользователь из админки обработать и отправить результат назад на добавление.
...
Рейтинг: 0 / 0
Вопрос по REST
    #38976486
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9,
Если БЛ в бд и еще CRUD то о каком API и повторяемости кода может идти речь.
У тебя все методы пустые.
API у тебя в бд т.к. триггеры с БЛ
...
Рейтинг: 0 / 0
Вопрос по REST
    #38976491
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9,
Что делает пользователь как корова пережевывая и отрыгивая, я не понял.)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по REST
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]