이의 그 생성자가 같은 보이는 클래스 A가 있다고 가정 해 봅시다 보조 사출 공장에서 만든 인스턴스를 바인딩 :Guice
public A(@Assited long id, @Assisten String name, ServiceA serviceA, ServiceB serviceB)
을 그리고 AFactory있다 :
public interface AFactory{
A create(long id, String name);
}
그래서의 인스턴스를 생성 AI는 분명히 그런 일을 수행해야합니다
injector = Guice.createInjector(new MyModule());
AFactory af = injector.getInstance(AFactory .class);
A a = AFactory.create(100, "mike");
하지만,클래스 B, 클래스 C와 (도의 ctor 필드 주입 만 가능) 예를 들어, A 형을 가진 멤버가 클래스 D : 0의 내가 다른 클래스가 있다고 가정 해 봅시다
public class B{
@Inject
A a;
}
을 그리고 내가 원하는 그 동일한 인스턴스이 해당 클래스에 주입됩니다. 그러나 A 클래스의 다른 인스턴스를 다른 클래스에 주입 할 수있는 옵션이 있습니다 (E 클래스와 F 클래스를 가정 해 봅시다).
올바른 방법은 무엇입니까? 나는 그렇게하기위한 깨끗한 방법을 생각할 수 없다.
그래서 다음과 같이 @Inject @Named하는 fieldName' ("일관성") ("일관성") – slashms
'@Inject @Named하지만 예를. 그리고 "일관된"핵심은 일관성있는 한 무엇이든 될 수 있습니다. :) –