Guice @Provides 方法不起作用

dea*_*mon 2 java dependency-injection guice

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

public class GuiceConfig extends GuiceServletContextListener {

  ...

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

}
Run Code Online (Sandbox Code Playgroud)

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

com.google.inject.CreationException:Guice 创建错误:<|<|1) 没有绑定 javax.persistence.EntityManager 的实现。<| 同时定位 javax.persistence.EntityManager<|
对于 com.someclass.of.myproject 中的参数 0

Col*_*inD 5

这里的主要问题是您使用@Provides不正确。一个@Provides方法必须在Module你初始化 Guice 时使用的s之一中......你不能把它放在GuiceServletContextListener.