Social Icons

.

воскресенье, 23 июня 2013 г.

Singleton Session Bean (JEE)


Просто Singleton Bean


@Singleton
public class SingletonBean { ... }

 Singleton Bean с начальной инициализацией

@Startup
@Singleton
public class StatusBean {
  private String status;

  @PostConstruct
  void init {
    status = "Ready";
  }
  ...
}

Несколько Singleton Bean-ов, со строгой последовательностью  инициализации

@Singleton
public class PrimaryBean { ... }
 

@Singleton
@DependsOn("PrimaryBean")
public class SecondaryBean { ... }

@Singleton
@DependsOn({"PrimaryBean", "SecondaryBean"})
public class TertiaryBean { ... }
Перед инициализацией третьего Singleton, будет проведена инициализация сначала Primary, а потом Secondary бинов.

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.

Комментариев нет:

Отправить комментарий

 

Так говорил Учитель:

У хорошо написанной программы есть свой собственный рай, у плохо написанной — свой собственный ад.

Russian Developer

Взгляд его светел, усилия праведны, старания бесплодны, дело безнадежно ...