import scaldi.Module;
public class MyAppModule extends Module {
bind[ILogger] to new FileLogger
bind[Service] to new Service
bind[Database] to new Database
}
class MyClass {
inject [ILogger] var logger: ILogger
inject [Service] var service: Service
def doSomething() : Unit = {
logger.log("Doing something...")
service.execute()
}
}
import scaldi.Injectable
object MyApp extends App with Injectable {
implicit val appModule = new MyAppModule
val myClass = inject[MyClass]
myClass.doSomething()
}