Практический совет относительно использования Джерси и Guice для УСПОКОИТЕЛЬНОГО сервиса

Из того, что я могу найти онлайн, состояние для Guice +, интеграция Джерси застоялась с 2008, когда кажется, что обе команды достигли тупика. Затруднение проблемы - то, что аннотации JAX-RS выполняют поле и инжекцию метода, и это не играет приятно с собственным внедрением зависимости Guice.

Несколько примеров, которые я нашел, не заходят достаточно далеко для объяснения:

  • Сообщение Iqbalyusuf на Джерси + Guice на Google App Engine Java страдает от большого количества шаблона (вручную получение и вызов инжектора). Я хочу связать, и инжекция должна произойти негласно с помощью аннотаций Guice.

  • Статья Creating Jonathan Curran УСПОКОИТЕЛЬНАЯ служба с Джерси, Guice и JSR-250 дали мне надежду, потому что это намного более актуально (2010), но пошел не далее, чем показ, как запустить сервис Джерси в Guice ServletModule. Однако нет никаких примеров выполнения никакого реального внедрения зависимости. Я предполагаю, что это оставили как осуществление для читателя. Сообщение Curran может на самом деле быть корректным первым шагом к обеспечению электричеством Guice и Джерси и таким образом, я планирую запуск с этого.

  • дразняще записи James Strachan:

    JAX-RS работает хорошо с платформами внедрения зависимости, такими как Spring, Guice, GuiceyFruit или JBossMC - можно в основном выбрать, какой бы ни один Вы предпочитаете.

    Но я не вижу доказательства, которое верно с точки зрения практика.

Что я нахожу, что недостаток является практическими примерами и объяснениями о том, как объединить аннотации JAX-RS и Guice. Например:

  • Я полагаю, что не могу использовать инжекцию конструктора ни с каким ресурсом, поскольку Джерси хочет управлять этим
  • Я не уверен, могу ли я объединить @Inject с @PathParam, @QueryParam, и др.
  • Как использовать инжекцию в реализации MessageBodyWriter

У кого-либо есть примеры, предпочтительно с источником, нетривиального приложения, которое комбинирует Джерси и Guice, не жертвуя один или другой в процессе? Я сохраняю эту дорогу независимо, но остатки на Джерси и списки Guice заставляют меня думать, что я повторяю работу других, которые приехали передо мной.

65
задан toolbear 19 April 2010 в 18:44
поделиться

2 ответа

Я считаю, что не могу использовать инъекцию конструктора с каким-либо ресурсом, поскольку Джерси хочет контролировать это

Вы не можете использовать Внедрение конструктора guice, потому что создание ресурса управляется jersey. В этом случае вы можете использовать аннотацию jersey @Inject перед параметром конструктора, который вы хотите ввести:

public NewsResource(@Inject NewsService service)
3
ответ дан 24 November 2019 в 15:29
поделиться

Я создал пример приложения Guice / Jersey / Jetty / Jackson здесь:

http://github.com/sunnygleason/j4-minimal

Если у вас есть какие-либо вопросы или предложения по улучшению Например, не стесняйтесь писать мне через github. Цель состоит в том, чтобы сделать это очень доступное введение в REST в стеке Java.

Надеюсь, это поможет - удачного дня!

-Солнечный

21
ответ дан 24 November 2019 в 15:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: