Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Guice 界面提供程序_Guice_Provider_Throw - Fatal编程技术网

Guice 界面提供程序

Guice 界面提供程序,guice,provider,throw,Guice,Provider,Throw,我对guice扩展没有太多经验。我希望得到一些指导。 有人能给我举个例子,说明如何为接口而不是具体类实现抛出提供程序 例如javax.mail.Session。如何将代码转换为抛出提供程序 公共类MailSessionProvider实现提供程序{ @注入 @命名(“邮件会话”) 私有静态字符串snName; @凌驾 公共会话get(){ 会话=空; 试一试{ Context ctx=新的InitialContext(); 返回(会话)ctx.lookup(snName); }捕获(Naming

我对guice扩展没有太多经验。我希望得到一些指导。 有人能给我举个例子,说明如何为接口而不是具体类实现抛出提供程序

例如javax.mail.Session。如何将代码转换为抛出提供程序

公共类MailSessionProvider实现提供程序{
@注入
@命名(“邮件会话”)
私有静态字符串snName;
@凌驾
公共会话get(){
会话=空;
试一试{
Context ctx=新的InitialContext();
返回(会话)ctx.lookup(snName);
}捕获(NamingE例外){
}
返回会议;
}

}

自GUI-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);
}
}
公共类MailSessionRowingProvider实现CheckedProvider{
@注入
@命名(“邮件会话”)
私有静态字符串snName;
@凌驾
公共会话get()引发NamingException{
final Context ctx=新的InitialContext();
返回(会话)ctx.lookup(snName);
}
}

您看过文档中的示例了吗?:是的,我看过了,除了绑定部分,它们看起来很明显。我试图绑定我的实现,但看起来我只能绑定一个具体的类,而不能绑定像Session或jdbc.Connection这样的接口。所以我一定是弄错了什么