Просто Singleton Bean
@Singleton public class SingletonBean { ... }
Singleton Bean с начальной инициализацией
@Startup @Singleton public class StatusBean { private String status; @PostConstruct void init { status = "Ready"; } ... }
Несколько Singleton Bean-ов, со строгой последовательностью инициализации
Перед инициализацией третьего Singleton, будет проведена инициализация сначала Primary, а потом Secondary бинов.@Singleton public class PrimaryBean { ... }
@Singleton @DependsOn("PrimaryBean") public class SecondaryBean { ... }
@Singleton @DependsOn({"PrimaryBean", "SecondaryBean"}) public class TertiaryBean { ... }
ConcurrencyManagementType.CONTAINER
@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)Или так:
@Singleton
public class SingletonBean {
private String state;
@Lock(LockType.READ)
@AccessTimeout(value=360000)
public String getState() {
return state;
}
@Lock(LockType.WRITE)
@AccessTimeout(value=360000)
public void setState(String newState) {
state = newState;
}
}
@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)
@Singleton
@Lock(LockType.READ)
@AccessTimeout(value=360000)
public class SingletonBean {
private String state;
public String getState() {
return state;
}
@Lock(LockType.WRITE)
@AccessTimeout(value=720000)
public void setState(String newState) {
state = newState;
}
}
ConcurrencyManagementType.BEAN
Полная ответственность разработчика за организацию доступа к ресурсам Singleton.
Комментариев нет:
Отправить комментарий