Использование инъекций в Entity eBeans в Play Framework 2.6+ - PullRequest
0 голосов
/ 05 апреля 2020

Я в процессе обновления своего приложения из Play! 2,5-2,6. Поскольку к внедрению кода движется гораздо больше, мне нужно переписать некоторые вещи.

Один из сценариев заключается в том, что мне нужно связаться с устройством, когда значение свойства изменяется. В прошлом мой коммуникационный модуль был stati c, поэтому он был:

Communications.communicateWithDevice(this.device);

Но теперь это класс Injected, а не stati c. Но инъекция с @Inject Communications communications; не работает. Я также попытался сделать это в конструкторе:

@Transient
private final Communications communications;

@Inject
public Switch(Communications communications){
    this.communications = communications;
}

Но тогда он работает, когда я предоставляю модуль связи, например, о создании, но не, если он возвращается, например, поисковым запросом. Это eBean, основанный на классе Model.

    Switch switchItem = Switch.findById(Long.valueOf(request().getQueryString("switchId")));

    if(switchItem.isTurnedOn()){
        switchItem.setTurnedOn(false);
        switchItem.setTurnedOffTimeReset();
    } else {
        switchItem.setTurnedOn(true);
    }
...