Джерси @PreMatching и привязка имени в 1 провайдере

Мне нужно реализовать фильтр Джерси (ContainerRequestFilter) что нужно вызвать во время pre-matching фаза, но применимо только к некоторым ресурсам.

pre-matching часть может быть сделано путем аннотирования класса с @PreMatching аннотация и "apply to some" функциональность через Джерси NameBinding механизм.

Что мне понадобится, чтобы объединить 2 функции в 1 провайдере; Теперь я почти уверен, что это невозможно, поскольку мне кажется, что это противоречиво (фильтр будет вызван, прежде чем мы сможем проверить, аннотирован ли данный класс), но все же я хочу быть на 100% уверен в этом, так как я буду пропускать 1 шаг в жизненном цикле Джерси и, следовательно, сокращение времени отклика.

Я использую Джерси 2.6

Спасибо

1 ответ

Я не могу точно ответить, возможно это или нет, но я хотел бы прокомментировать "пропуск 1 шага, чтобы уменьшить время отклика": я бы сказал, что вам даже не нужно будет это учитывать на данном этапе. Стремитесь сделать ваш код легким для чтения и понимания (возможно, будет лучше разделить структуру как на фильтр, так и на некоторый класс пространственных объектов и в любом случае совместно использовать общий код).

Если вы столкнулись с проблемами производительности / длительным временем отклика во время тестового / раннего развертывания, профилируйте свое приложение и посмотрите, что на самом деле требует времени, и в первую очередь сосредоточьтесь на этих областях. Я очень уверен, что время не тратится там, где вы думаете, и я куплю вам пиво, если оно действительно окажется тем дополнительным шагом в жизненном цикле, который вызовет ваши (любые) проблемы с производительностью.

Другие вопросы по тегам