Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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
Java Guice@Provides方法不起作用_Java_Dependency Injection_Guice - Fatal编程技术网

Java Guice@Provides方法不起作用

Java Guice@Provides方法不起作用,java,dependency-injection,guice,Java,Dependency Injection,Guice,在我的Guice配置中有一个用@Provides注释的方法,但它不起作用 public class GuiceConfig extends GuiceServletContextListener { ... @Provides @RequestScoped EntityManager provideEntityManger() { return entityManagerFactory.createEntityManager(); } } 当我运行应用程序时,出现

在我的Guice配置中有一个用@Provides注释的方法,但它不起作用

public class GuiceConfig extends GuiceServletContextListener {

  ...

  @Provides @RequestScoped
  EntityManager provideEntityManger() {
    return entityManagerFactory.createEntityManager();
  }

}
当我运行应用程序时,出现以下错误:

com.google.inject.CreationException:
Guice创建错误:这里的主要问题是您使用@Provides不正确。@Provides方法必须位于初始化GUI时使用的某个模块中。。。你不能把它放在GuiceServletContextListener中。

我可能错了,但对我来说,它看起来像是一个与范围相关的问题。您确定范围界定是正确的吗?当您的webapp启动时,它将不在RequestScope中。