我们在文档中设置了guice,它似乎工作正常,但我们在应用程序日志中遇到以下错误:
[warn]应用程序 - 也许inject.modules配置参数没有设置propery? java.lang.ClassNotFoundException:module.Dependencies 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:366) 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) 在java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 在com.typesafe.plugin.inject.InjectPlugin.createModules(InjectPlugin.java:88) 在com.typesafe.plugin.inject.InjectPlugin.availableModules(InjectPlugin.java:29) 在com.typesafe.plugin.inject.GuicePlugin.onStart(GuicePlugin.java:33) at play.api.Play $$ anonfun $ start $ 1.apply(Play.scala:60) at play.api.Play $$ anonfun $ start $ 1.apply(Play.scala:60) 在scala.collection.LinearSeqOptimized $ class.foreach(LinearSeqOptimized.scala:59) 在scala.collection.immutable.List.foreach(List.scala:45) at play.api.Play $ .start(Play.scala:60) ...
有什么可以忽略的吗?如果在application.conf中没有为inject.modules指定任何内容,则inject.modules似乎是默认值。
答案 0 :(得分:1)
您必须提供一个名为module.Dependencies
的类来进行绑定,例如:
package module;
import com.google.inject.*;
import service.*;
public class Dependencies implements Module {
public void configure(Binder binder) {
binder.bind(Service.class).to(SomethingService.class);
}
}
看看here。