나는 stackoverflow 및 기타 리소스를 찾아서 대답을 찾고 어쩌면 얻지 못할 수도 있습니다.GIN 위젯 (widget) 필드에 @Singleton을 입력하십시오.
내 응용 프로그램의 클라이언트 코드에서 여러 위젯과 클래스에 GIN @Singleton을 주입하려고합니다. Spring을 사용하면 간단하게 정확한 주석을 사용할 수 있고 아무 것도 주사 할 수 있습니다. GWT와 GIN 사용하기 나는 생성자 이외의 곳에서는 주입 할 수 없다. 매우 큰 프로젝트를 수행하고 있기 때문에 생성자에 삽입하고 싶지 않으며 거의 불가능합니다.
위의 클래스 중 일부는 위젯이며 다른 클래스는 그렇지 않습니다. 그것들은 애플리케이션 전반에 걸쳐 사용되고 일부는 주입되고, 다른 것들은 새로운 것에 의해 인스턴스화되고, 다른 것들은 둘 모두를 가지기 때문에 생성자를 변경하는 것이 훨씬 어렵다.
내가 코드는 다음과 같이 일하고 싶어하지만 GIN 작동 방법을 이해하지 않습니다
누군가가 다른이가 발표자로 일을하고 작동 왜 가지 이해 코딩@Singleton
public class ApplicationData {
public AppInfo getAppInfo() {
return new AppInfo("My App Info");
}
}
public class MyClass{
@Inject protected ApplicationData applicationData;
public void someMethod() {
doSomething(applicationData.getAppInfo());
}
}
하지만, 나는 개념을 완전히 이해하지 못한다. 그들은 더 이상 물어볼 필요가 없습니다. 여기
는 작동 할 수 있도록 내가 가진 해킹,하지만 난 그냥 그것을 좋아하지 않아 :@GinModules(GinModule.class)
public interface Injector extends Ginjector {
final Injector INSTANCE = GWT.create(Injector.class);
ApplicationData getApplicationData();
}
public class MyWidget extends Composite implements TakesValue<Integer>{
public static interface MyWidgetUiBinder extends UiBinder<FormPanel, MyWidget>}
private MyWidgetUiBinder uiBinder = GWT.create(MyWidgetUiBinder.class);
private ApplicationData appData;
public ArrivalTimeWidget() {
appData = Injector.INSTANCE.getApplicationData();
initWidget(uiBinder.createAndBindUi(this));
someMethod(appData.getAppInfo());
}
}
이렇게 제대로 대신 해킹을 사용하여 저를 도와주세요. 그리고 나에게 어리석은 것처럼 나를 대하시기 바랍니다. 왜냐하면 이것에 관해서는, 나는 바보입니다.
Spring이 어떻게 달라질 지 궁금하다. GIN이 필드를 삽입하지 않으면 클래스를 인스턴스화하지 않아야하기 때문이다. 나는 스프링 DI에 대해서도 마찬가지라고 생각한다. –
링크를 클릭하십시오. 그것은 도움이 될 수도 있습니다 .http : //stackoverflow.com/questions/6495303/inject-entry-point-class-in-gwt-with-gin? rq = 1 – PVR
@Ranna, 이것이 내가보기에 유용한 유일한 것입니다. 그 링크 : "의존성 주입을하려면 인젝터를 사용하여 GIN을 통해 클래스를 초기화해야합니다 (앞서 언급 한대로)." 그래서 의존성 삽입을 사용하기 위해 1000 개의 클래스를 모두 GIN에 의해 인스턴스화해야 할 필요가있는 것 같습니다. 바보가 아니라면 그것은 어리석은 것처럼 보입니다. 더 나은 방법이 없습니까, 아니면 GIN이 진화하지 않았습니까? 위에서 설명한 내 방식대로 작동하므로 GIN이 필드 구성원에게 주석을 삽입하는 데 동일한 철학을 사용할 수없는 이유는 무엇입니까? 자연이 매우 제한된 것 같습니다. 어느 쪽이든, 또는 나는 아직도 그것을 얻지 못한다. – user1209809