是否可以爲注入到@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