https://github.com/google/guice/wiki/AssistedInject을 읽었지만 AssistedInject 인수의 값을 전달하는 방법은 설명하지 않습니다. injector.getInstance() 호출은 어떻게 생겼을까요?Guice의 AssistedInject를 사용하는 방법?
70
A
답변
127
FactoryModuleBuilder 클래스의 javadoc을 확인하십시오.
AssistedInject
을 사용하면 직접 Factory
을 코드화하는 대신 클래스로 구성 할 수 있습니다. 이는 삽입해야하는 종속성이있는 오브젝트와 오브젝트 작성 중에 지정해야하는 일부 매개 변수가있는 경우에 유용합니다. docummentaiton에서
예
public class RealPayment implements Payment {
@Inject
public RealPayment(
CreditService creditService,
AuthService authService,
@Assisted Date startDate,
@Assisted Money amount) {
...
}
}
인스턴스 생성시 개발자가 CreditService
AuthService
및이 용기에 의해 분사해야하지만 startDate를하고 금액을 지정해야한다는 RealPayment A를 참조한다.
그래서 대신 Payment
당신이 주입되는 주입의 RealPayment
public interface PaymentFactory {
Payment create(Date startDate, Money amount);
}
에 @Assisted
으로 표시됩니다 그리고 공장
PaymentFactory
install(new FactoryModuleBuilder()
.implement(Payment.class, RealPayment.class)
.build(PaymentFactory.class));
이
구성 공장에 주입 될 수 너의 수업.
@Inject
PaymentFactory paymentFactory;
사용자 코드에서 사용할
Payment payment = paymentFactory.create(today, price);
관련 문제
- 1. Guice의 GenericDao
- 2. Google Guice의 숨겨진 기능
- 3. , 일반적인 유형의 개체를 삽입하는 방법? guice의
- 4. Google Guice의 조건부 일치
- 5. guice의 모듈 계층 구조
- 6. 선택 Guice의 스코프 삽입
- 7. Guice의 JSR-330 지원
- 8. Google Guice의 평생 관리
- 9. Guice의 반 패턴인가요?
- 10. Guice의 줄무늬에서 MockRoundtrip 사용
- 11. Google Guice의 TypeLiteral에 관한 질문
- 12. Guice의 eager/lazy singleton instantiations
- 13. 구성 클래스 - Guice의 모범 사례
- 14. Google Guice의 명시 적 공급자 바인딩
- 15. Google Guice의 InjectMembers() 메소드가 실제로 작동하지 않습니까?
- 16. 여러 인터페이스를 Guice의 하나의 impl에 자동으로 바인딩
- 17. 윈저를 사용하여 Guice의 MapBinder를 모방하는 방법은 무엇입니까?
- 18. Guice의 @Singleton 주석을 상속 할 수 있습니까?
- 19. Guice의 모듈 초기화 및 파괴 처리기?
- 20. TypeLiteral에 대한 바인딩이 Google Guice의 좋고 나쁜 관행
- 21. guice 내가 AssistedInject를 사용하여 매개 변수화 된 생성자를 가진 클래스가 주입
- 22. Guice의 바인딩 된 인터페이스에 대한 모든 공급자 요청
- 23. Guice의 Module.configure()에서 이미 바인딩 된 인스턴스를 사용할 수 있습니까?
- 24. Guice의 범위 끝에있는 자원을 자동으로 정리할 수 있습니까?
- 25. Guice의 @Inject (서브 소스에)를 사용하여 @Context 필드를 입력하십시오.
- 26. Guice의 인젝터에서 주석 처리 된 인스턴스를 가져 오는 방법은 무엇입니까?
- 27. 카운트를 사용하는 SQL 하위 쿼리를 사용하는 방법
- 28. dijit.Calendar를 팝업으로 사용하는 대신 직접 사용하는 방법
- 29. SQL ISNULL을 사용하는 동안 IN을 사용하는 방법
- 30. Chrome 확장 프로그램에서 jQuery를 사용하는 방법 contentcript를 충돌없이 사용하는 방법
관련, 아래의 답변은 그 같은 종류는 여러 번 사용하는 경우를 커버하지 않습니다. https://stackoverflow.com/questions/23553865/using-assisted-inject-with-multiple-params-of-same-type-named-params – Alex