私はGuice for Dependency injectionを使用しています。私は@CheckedProvidesを使用したいのですが、オブジェクトの構築が例外をスローする可能性があり、ProvisionExceptionでラップさせたくありません。私はこれが便利だとわかりましたが、私は完全な絵を得ることができません。私はCheckedProviderインターフェイスを拡張しているインターフェイスを作成しました。今、このインターフェースの実装クラスに含まれるものを知りたいですか?CheckedProvider-Guiceの使い方
私はそれが私が
bind(TokenEncrypterProvider.class).toProvider(WHICHCLASS?.class);
か、それは仕方ない場合は書くべきものを結合するために、今
@Provides
public TokenManager getTokenManager(SomeClass obj) {
return new TokenManager(obj);
}
@CheckedProvides(TokenEncrypterProvider.class)
public SomeClass getEncrypter() {
try {
return new SomeClassFactory()
.buildEncryptionClient(AppConfig.findString("xyz"));
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
public class TokenManager {
private final SomeClass obj;
@Inject
public TokenManager(SomeClass obj) {
this.obj = obj;
}
...
}
として使用したい
public interface TokenEncrypterProvider <T> extends CheckedProvider<T> {
T get() throws ExceptionInInitializerError;
}
のように私のインターフェースが見えますCheckedProvidesを使用するには、正しいものを提案してください。