6
Скажем, у меня есть:Как указать метод @Alternative производителя в beans.xml?
public interface Foo {...}
public class AltProducer {
private Foo altFoo;
@Produces @Alternative
public Foo getAltFoo() { return altFoo; }
}
Что мне нужно поставить в beans.xml так что метод @Produces моего AltProducer будет вызываться вместо инъекционного Bar?
+1. Мне это очень громоздко. Javadocs для '@ Alternative' говорит:« Может применяться к классу bean, методу производителя или полем ». Но это вводит в заблуждение, потому что внутри beans.xml мы можем указывать только '' или '' - нет способа ввести метод или поле производителя. –
Вы совершенно правы. Наличие @Alternative аннотации в методе продюсера абсолютно бессмысленно, поскольку в Beans.xml не может быть активирована созданная альтернатива. – 99Sono
Еще один момент с CDI 1.1 заключается в том, что в большинстве случаев, когда вы аннотируете родительский класс как альтернативу, вы также захотите добавить аннотацию Priority, чтобы включить эту альтернативу во всех BeanDeploymenyArchieves of WELD. Так что помните, редко вы используете альтернативу без приоритета в jEE 7. – 99Sono