Согласно официальной документации Google Guice: https://github.com/google/guice/wiki/ProvidesMethods
@ Предоставляет методы Когда вам нужен код для создания объекта, используйте метод @Provides.Метод должен быть определен внутри модуля и иметь аннотацию @Provides.Тип возвращаемого значения метода является связанным типом.Всякий раз, когда инжектору нужен экземпляр этого типа, он вызывает метод.
Итак, конструктор никогда не будет вызван.
Если вам все равно нужно построить объект,используйте com.google.inject.Singleton
аннотацию:
import com.google.inject._
class DbModule extends AbstractModule {
@Provides
@Singleton
def helloWorld: HelloWorld = new HelloWorld();
}
class HelloWorld() {
println("Hello world!")
}
напечатает:
Hello world!