Я пытаюсь добавить службы отдыха в приложение для расположений, используя трикотаж. Для этого мне нужно разделить код Java таким образом, чтобы к нему можно было обычно обращаться как с распорками, так и с остальными api. Это делается для того, чтобы код был разделен между остальными и стойками, и любые изменения отражались бы в обеих службах. Мне хотелось бы знать, насколько эта идея возможна и погодя, как обычно люди проектируют службы отдыха ,Добавление службы отдыха в приложение для расположений
ответ
Хотя наш уровень представления не основан на Struts (обычно это Spring Web MVC или JSF), мы используем Spring 3.0 + Java EE 6, в частности, EJB 3.0 и JPA 2.0 для таких ситуаций.
EJB 3.0 факсимильные сессионные компоненты EJB 3.0 отлично работают - они могут иметь декларативную (на основе аннотации) инъекцию зависимостей и демаркацию транзакций или сами управлять своими транзакциями, зависимостями и ресурсами, используя любой традиционный механизм. Они бесшовно интегрируются с JPA 2.0 и достаточно легки для модульного тестирования. Основное преимущество перед чистыми фасолью Spring заключается в том, что они могут быть развернуты независимо от веб-приложения (как JJB EJB).
На лицевой стороне веб-сервисов мы также используем Jersey/JAX-RS. Поскольку инъекция зависимостей Джерси/JAX-RS нарушена (она не использует Weld/CDI, как и остальная часть Java EE), нам пришлось прибегать к Spring DI, чтобы «подключить» к классам ресурсов REST на передней панели с помощью «back-end» EJB. Хорошо, что это работает достаточно хорошо, чтобы вводить EJB в наши MVC-контроллеры и также можно использовать с управляемыми фазами JSF. В качестве альтернативы вы можете написать свои ресурсы REST-ful только с помощью Spring (любой из них имеет свои плюсы и минусы, но в целом оба хорошо выполняют эту работу).
Я знаю, что я прояснил все это, но я был бы рад поделиться более подробной информацией по запросу.
EDIT: Некоторые подробности, как на запрос.
Вы сначала остановитесь для обучения Джерси/JAX-RS, это должно быть Jersey User Guide. Есть также несколько руководств/примеров, которые вы можете легко найти в «Сети».
Хотя вы должны быть в состоянии разместить ресурсы Джерси/JAX-RS в той же WAR, что и ваши страницы Struts, мы пошли с более простой альтернативой их развертывания отдельно.
Теперь, при развертывании в Glassfish 3.1, мы удалили ошибку this, также задокументировали here. Суть в том, что инъекция @EJB
не работает для нас, как и ожидалось.
Итак, вместо этого мы вернулись к весне, используя модуль ввода jersey-spring
, следуя этому example.
В любом случае, остальная часть этого стандарта является стандартом Java EE 6/EJB 3.0. Мы идентифицируем и помещаем все общие функциональные возможности в «сервисный» уровень, который в значительной степени реализован как E12B.
Стойкость обрабатывается через JPA @Entity
s доступ через инъекцию JPA EntityManager
. Сделки декларативно демаркируются с использованием @TransactionAttribute
.
Вот быстрый иллюстрация типичного EJB + службы JPA боба:
@Stateless
public class WidgetServiceBean implements WidgetService {
@PersistenceContext
private EntityManager em;
@Override
public List<Widget> findWidgetByName(String name) {
return em.createNamedQuery("Widget.findByName", Widget.class)
.setParam("name", name).getResultList();
}
@Override
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void removeWidgetById(int id) {
em.find(Widget.class, id).remove();
}
}
(Очевидно, не качество продукции, а просто показывает, как «худой», они могут быть.)
Сервисный уровень и сущности упакованы в виде EJB JAR, которые могут быть развернуты отдельно и доступны для всех других модулей с помощью глобального поиска JNDI. Или они могут быть развернуты в Struts или JAX-RS WAR, а с Java EE 6 (Glassfish 3.x) они будут найдены, развернуты как часть модуля и предоставлены другим компонентам в пределах одной WAR.
Некоторые могут утверждать, что проще использовать весенние бобы, если вы используете контейнер Spring в любом случае. Я бы сказал, вероятно, но тогда вам также придется использовать Spring Persistence framework и платформу транзакций Spring. (Spring также предоставляет декларативные транзакции и настойчивость.) Если вы уже сильно инвестировали в Spring, это может быть более простым путем.
Ото, EJB 3.0, JPA 2.0 и JTA также значительно упрощены от своих предшественников и являются частью стандарта Java EE, так что это архитектурное решение с большим количеством измерений.
- 1. Приложение VB6 для вызова службы отдыха
- 2. HttpsURLConnection для вызова службы отдыха
- 3. JSON Проверка службы отдыха
- 4. heroku другой порт для службы отдыха
- 5. Потребление службы отдыха
- 6. Опрос службы отдыха в Таленде
- 7. Приложение для отдыха и авторизация
- 8. Расширить приложение MVC для ОТДЫХА
- 9. Добавление внешних банки в NetBeans для обслуживания отдыха в GlassFish
- 10. Добавление ссылки службы WCF в приложение Java
- 11. Проблема с отправкой службы XML для отдыха
- 12. добавление веб-сервиса отдыха в приложение, поддерживаемое websphere
- 13. Внедрение теста JUnit для службы отдыха
- 14. Junit передачи нескольких параметров для отдыха службы
- 15. Добавление параметров для отдыха GET-запрос
- 16. Анализ XML из службы ответа службы отдыха
- 17. Веб-приложение, JAX-rs, клиент Jax-rs, сервлеты, службы отдыха
- 18. @ResponseBody и службы весеннего отдыха
- 19. Bing Maps Код службы отдыха
- 20. Вызов службы отдыха с сервлета
- 21. Тестирование службы отдыха с JUnit
- 22. Как добавить управление сеансом в службы отдыха?
- 23. как вызвать зависимые службы отдыха
- 24. Приложение для Android-приложений для отдыха
- 25. Spring MVC - вызов службы отдыха изнутри другого сервиса отдыха
- 26. Apache ISIS продление службы отдыха
- 27. Потребление службы отдыха функциональным способом
- 28. Как установить тайм-аут для вызова службы отдыха в Web.Config
- 29. Как использовать службы отдыха в ATG?
- 30. извлечение изображения из службы отдыха в Android
Tnx, мне бы хотелось узнать больше о том, как вы это сделали. – Emil