Я пытаюсь заменить реализацию по умолчанию, предоставленную DeltaSpike (LocaleResolver
), своей собственная реализация через @Alternative
.
@Alternative
@RequestScoped
public class ExampleLocaleResolver implements LocaleResolver {
}
<alternatives>
<class>org.example.app.ExampleLocaleResolver</class>
</alternatives>
Кажется, единственный способ сделать ExampleLocaleResolver
выбранным компонентом — использовать @Priority
или @Specializes
.
Например, следующие два работают отлично:
@Priority(1)
@Alternative
@RequestScoped
public class MyLocaleResolver implements LocaleResolver {
}
@Specializes
@RequestScoped
public class MyLocaleResolver extends DefaultLocaleResolver {
}
Насколько я понимаю, с CDI 1.1+ должна быть возможность переопределить bean-компоненты из библиотек с альтернативами без каких-либо взломов.
Может ли кто-нибудь помочь мне понять, почему я не могу внедрить bean-компонент @Alternative
без аннотации @Priorty
?