Конструктор веб-службы Java REST - PullRequest
4 голосов
/ 30 декабря 2011

Есть ли смысл иметь конструктор в классе веб-службы Java? (Похоже, что в статьях, которые я нашел, нет единого мнения.)

Я использую Джерси для реализации веб-службы REST , для которой необходим нестатический общий объект (служебный класс для обработки строк), доступный для различных (не статические) методы обслуживания.

Инициализация этого общего объекта обычно происходит в конструкторе класса, если бы это не был веб-сервис. Но что теперь, когда это так?

Если конструктор не может быть использован, должен ли я поместить в каждый соответствующий метод синхронизированный блок , который проверяет, доступен ли общий объект, и, если нет, инициализирует его? Или есть лучший подход?

Ответы [ 3 ]

3 голосов
/ 30 декабря 2011

Каждый класс веб-службы имеет конструктор.Если вы не включите его, то Java автоматически добавит конструктор по умолчанию без аргументов.Вы можете:

  1. Инициализировать экземпляр утилиты при объявлении ее переменной класса
  2. Вручную добавить конструктор по умолчанию и инициализировать в нем экземпляр утилиты
  3. Или, если вы используете JEE6Вы можете внедрить экземпляр утилиты в свой веб-сервис
1 голос
/ 21 августа 2017

Попробуйте @ PostConstruct аннотация.Это может помочь вам.

1 голос
/ 30 декабря 2011

Это просто мнение, но если вы хотите придерживаться REST на 100%, ваш веб-сервис должен быть без сохранения состояния.Инициализация общих объектов в веб-вызовов методов службы подразумевает состояние, так что это не самая лучшая идея. *

1002 ** это спорно, как можно видеть в комментариях.Однако любая синхронизация и инициализация общего объекта, если не требуется IMO, должны быть запрещены в приложениях REST.

Contructor, безусловно, является решением, еще лучше было бы использовать внедрение зависимостей и внедрить нужный объект в ваш экземпляр веб-службы при создании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...