是否可以为注入到@Named bean的所有会话对象全局设置会话超时?全局设置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);
}
将其设置在每个bean(问题是,有很多CDI豆并在每个手动设置超时他们的是不是最好的解决办法)
由于以下一些已经证明了问题的答案,有ISN这是一个标准的做法。你所做的任何事情(缺少Stasal的答案)都不是可移植的。 – LightGuard