import scaldi.Module;
import scaldi.Injectable;
import scaldi.Injector;
interface GreetingService {
void greet();
}
class EnglishGreetingService implements GreetingService {
@Override
public void greet() {
System.out.println("Hello!");
}
}
class MainModule extends Module {
bind[GreetingService] to new EnglishGreetingService()
}
class App(injector: Injector) extends Injectable {
val greetingService = inject[GreetingService]
def run(): Unit = {
greetingService.greet()
}
}
object Main {
def main(args: Array[String]): Unit = {
val mainModule = new MainModule()
val injector = mainModule.injector
val app = new App(injector)
app.run()
}
}