0

Guice 拡張機能の経験はあまりありません。いくつかのガイダンスをいただければ幸いです。具体的なクラスではなく、インターフェイスのスロープロバイダーを実装する方法の例を教えてください。

たとえば、javax.mail.Session. コードをスロープロバイダーに変換するにはどうすればよいですか?

public class MailSessionProvider implements Provider<Session> {

  @Inject
  @Named("mailSession")
  private static String snName;

  @Override
  public Session get() {
     Session session = null;
     try {
        Context ctx = new InitialContext();
        return (Session) ctx.lookup(snName);
     } catch (NamingException e) {

     }
     return session;
  }

}

4

1 に答える 1

0

Guice-3.0 以降、次のように CheckedProvider を使用する必要があります。

public class MailSessionThrowingProvider implements CheckedProvider<Session> {

@Inject
@Named("mailSession")
private static String snName;

@Override
public Session get() throws NamingException {
    final Context ctx = new InitialContext();
    return (Session) ctx.lookup(snName);
}
}
于 2012-10-17T08:29:00.773 に答える