2017-02-23 117 views
0

У меня есть некоторые перехватчики, которые используются для отладки (производительность, протоколирование использования метода и т. Д.) Наших приложений JavaEE.Отключить/включить перехватчик во время выполнения

В производственной системе я не хочу, чтобы эти перехватчики были включены по умолчанию, но я хочу иметь возможность включить их во время выполнения (= без повторного развертывания). Есть ли какой-либо переносной способ сделать это независимо от реализации CDI? Если нет, существует ли какой-либо WELD конкретный способ сделать это?

Мое единственное решение будет глобальным флагом, который должен использоваться этими перехватчиками, но все еще имеет накладные расходы на ввод перехватчика и оценку флага просто для ничего.

ответ

1

Это одна из вещей, которые CDI/Weld делают, когда они загружаются. Например. для перехватчика вам действительно нужно создать «оберточный прокси», который будет обрабатывать любую дополнительную работу, которую вы имеете на перехватчике. Поэтому ответ: нет, вы не можете этого сделать во время выполнения.

Однако ваш подход с видом флага совершенно прекрасен. Накладные расходы на наличие прокси-сервера перехватчика (который ничего не делает) действительно настолько малы, что вы не должны его замечать. Я бы, наверное, пошел с таким подходом.

+0

Хорошо, тогда я воспользуюсь своим первоначальным решением. Благодарю. – grubi