반응형
Guice의 AssistedInject를 사용하는 방법?
https://github.com/google/guice/wiki/AssistedInject를 읽었 지만 AssistedInject 인수의 값을 전달하는 방법은 나와 있지 않습니다. injector.getInstance () 호출은 어떻게 생겼습니까?
FactoryModuleBuilder 클래스 의 javadoc을 확인하십시오 .
AssistedInject
Factory
클래스를 직접 코딩하는 대신 동적으로 구성 할 수 있습니다 . 이는 삽입해야하는 종속성이있는 개체와 개체 생성 중에 지정해야하는 일부 매개 변수가있는 경우에 유용합니다.
문서의 예는 RealPayment
public class RealPayment implements Payment {
@Inject
public RealPayment(
CreditService creditService,
AuthService authService,
@Assisted Date startDate,
@Assisted Money amount) {
...
}
}
그보기 CreditService
및 AuthService
인스턴스 생성시 개발자가 지정되어야하지만, 용기의 startDate 및 양만큼 주입한다.
그래서 대신에 주입의 Payment
당신은 주입되는 PaymentFactory
것으로 표시된 매개 변수 @Assisted
에RealPayment
public interface PaymentFactory {
Payment create(Date startDate, Money amount);
}
그리고 공장을 묶어야합니다
install(new FactoryModuleBuilder()
.implement(Payment.class, RealPayment.class)
.build(PaymentFactory.class));
구성된 팩토리를 클래스에 삽입 할 수 있습니다.
@Inject
PaymentFactory paymentFactory;
귀하의 코드에 사용
Payment payment = paymentFactory.create(today, price);
참고 URL : https://stackoverflow.com/questions/8976250/how-to-use-guices-assistedinject
반응형
'developer tip' 카테고리의 다른 글
jQuery에서 직렬화 된 양식 데이터를 어떻게 수정합니까? (0) | 2020.10.12 |
---|---|
Sql 쿼리를 통해 Sqlite에서 테이블의 첫 번째 / 맨 위 행을 얻는 방법 (0) | 2020.10.12 |
Angular에서 개체 비교 (0) | 2020.10.11 |
jQuery datepicker 연도 표시 (0) | 2020.10.11 |
그래프에서 뚜렷하게 다른 RGB 색상 생성 (0) | 2020.10.11 |