Spec-Zone .ru
спецификации, руководства, описания, API


javax.enterprise.inject
Тип аннотации Производит


@Target(value={METHOD,FIELD})
@Retention(value=RUNTIME)
@Documented
public @interface Produces

Идентифицирует метод производителя или поле. Может быть применен к методу или полю боба class.

Метод производителя должен быть неабстрактным методом управляемого боба class или боб сеанса class. Метод производителя может быть или статичным или нестатичным. Если боб является бобом сеанса, метод производителя должен быть или бизнес-методом EJB или статическим методом боба class.

 public class Shop {
    @Produces @ApplicationScoped 
    @Catalog @Named("catalog") 
    List<Product> getProducts() { ... }
    ...
 } 
 

Поле производителя должно быть полем управляемого боба class или боб сеанса class. Поле производителя может быть или статичным или нестатичным. Если боб является бобом сеанса, поле производителя должно быть статическим полем боба class.

 public class Shop { 
    @Produces @ApplicationScoped 
    @Catalog @Named("catalog") 
    List<Product> products = ...;
    ...
 } 
 

Если метод производителя иногда возвращает нулевое значение, или если поле производителя иногда содержит нулевое значение когда получено доступ, то у метода производителя или поля должен быть контекст @Dependent.

Тип возврата метода производителя или тип поля производителя, возможно, не переменная типа.

Если тип возврата метода производителя или тип поля производителя являются параметризованным типом, это должно определить фактический параметр типа или ввести переменную для каждого параметра типа.

Если тип возврата метода производителя или тип поля производителя являются параметризованным типом с переменной типа, у этого должен быть контекст @Dependent.

У метода производителя может быть любое число параметров. Все параметры метода производителя являются инжекционными точками.

public class OrderFactory {
 
    @Produces @ConversationScoped
    public Order createCurrentOrder(@New(Order.class) Order order, @Selected Product product) {
       order.setProduct(product);
       return order;
    }
 
 }

Боб может объявить многократные методы производителя или поля.

Методы производителя и поля не наследованы бобовыми подклассами.

Перехватчики и декораторы, возможно, не объявляют методы производителя или поля.

Автор:
Гэвин Кинг, Пит Мюр
См. Также:
@Disposes



Представьте ошибку или функцию

Авторское право © 2009-2011, Oracle Corporation и/или его филиалы. Все права защищены. Использование подвергается срокам действия лицензии.

Сгенерированный на 10-February-2011 12:41

free hit counter