我可以帮助您进行翻译。以下是您需要翻译的内容:
生产者:
当我尝试部署项目时,出现了WELD-001409错误,并且Eclipse也指出存在多个注入点。
使用显式命名可以解决该问题。
我希望在我的应用程序中使用一个生产者,但我卡在了注入bean的点上。我遇到了著名的WELD-001409错误。请帮我更好地理解CDI生产者。
这是我的接口:
@Named
public interface MessageSender {
void sendMessage();
}
the bean:
public class EmailMessageSender implements MessageSender {
@Override
public void sendMessage() {
System.out.println("Sending email message");
}
}
生产者:
@SessionScoped
public class MessageSenderFactory implements Serializable {
private static final long serialVersionUID = 5269302440619391616L;
@Produces
public MessageSender getMessageSender() {
return new EmailMessageSender();
}
}
现在我正在注入Bean:
@Inject
MessageSender messageSender;
当我尝试部署项目时,出现了WELD-001409错误,并且Eclipse也指出存在多个注入点。
使用显式命名可以解决该问题。
@Inject @Named("messageSender")
MessageSender messageSender;
这个命名必要吗?
WELD-001409
,因为:1. 有些人可能知道CDI但不一定知道WELD,也许是OWB;2. 即使大多数使用WELD的人可能会记得Java异常类的完整和描述性名称,但不会记得神秘和无意义的WELD-001409
。 - rdcrng