Инъекция с Джином в экземпляр, созданный GWT.create - PullRequest
1 голос
/ 05 декабря 2011

У меня есть пользовательское отложенное связующее (реализация повторного связывания), которое создает экземпляры объектов.Я хотел бы иметь некоторые зависимости (аннотированные методы установки @Inject) в экземпляре, возвращаемом GWT.create (), выполняемом GIN.Возможно ли это?

Итак, данный код, такой как:

Foo foo = GWT.create(Foo.class);

, если конечная реализация foo имеет:

@Inject
public void setBar(Bar bar) {
    ...
}

как мне вставить брус в возвращенныйFoo экземпляр автоматически по GIN?

1 Ответ

2 голосов
/ 06 декабря 2011

Ваш Ginjector может иметь методы, добавленные к нему для инъекции объектов, созданных другим способом.Они должны принимать один аргумент и должны указывать максимально конкретный тип.Например, если MyViewImpl расширяет BaseView, и оба типа имеют зависимости для внедрения, но вы объявляете

void injectBaseView(BaseView view);

в своем ginjector, будут обрабатываться только поля / сеттеры, объявленные в BaseView.

РЕДАКТИРОВАТЬ: Кроме того, если привязка не объявлена, GWT.create будет использоваться для создания экземпляра, так что вы можете иметь свой торт и съесть его.Насколько я помню, есть одно исключение, когда вы хотите создать GWT.создать один тип, но вернуть другой (см., Например, интерфейсы RPC).

...