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 回答