Возможно ли установить тайм-аут разговора по всему миру для всех объектов беседы, введенных в @Named beans?Настройка тайм-аута тайм-аута CDI глобально
У меня есть несколько @ConversationScoped бобы, например .:
import javax.annotation.PostConstruct;
import javax.enterprise.context.Conversation;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;
import javax.inject.Named;
@Named
@ConversationScoped
public class SomeBean1 {
@Inject
private Conversation conversation;
@PostConstruct
private void init() {
if (conversation.isTransient()) {
conversation.begin();
}
}
}
@Named
@ConversationScoped
public class SomeBean2 {
@Inject
private Conversation conversation;
@PostConstruct
private void init() {
if (conversation.isTransient()) {
conversation.begin();
}
}
}
тайм-аут по умолчанию для этих разговоров 600000 мс. Я хочу знать, есть ли способ, чтобы установить время ожидания переговоров по всему миру, или мне нужно, чтобы установить его в каждом компоненте по
if (!conversation.isTrainsient()) {
conversation.setTimeout(MY_CUSTOM_TIMEOUT);
}
(проблема в том, что есть много CDI фасолью и настройки тайм-аута вручную в каждом из них не является лучшим решением)
Как некоторые ответы ниже продемонстрировали, там ISN Это стандартный способ сделать это. Все, что вы делаете (за исключением ответа стазала), не будет переносимым. – LightGuard