import wvlet.airframe._
case class MyComponent()
class MyApp(myComponent: MyComponent) {
def run(): Unit = {
}
}
object Main {
def main(args: Array[String]): Unit = {
val design = newDesign
.bind[MyComponent].toInstance(MyComponent())
.bind[MyApp]
val app = design.build[MyApp]
app.run()
}
}
import wvlet.airframe._
trait Logging {
def log(message: String): Unit
}
class MyComponent extends Logging {
@Logger
val logger = Logger.of[MyComponent]
def log(message: String): Unit = {
logger.info(message)
}
}
class MyApp(myComponent: MyComponent) {
def run(): Unit = {
myComponent.log("Hello, Airframe!")
}
}
object Main {
def main(args: Array[String]): Unit = {
val design = newDesign
.bind[MyComponent]
.bind[MyApp]
val app = design.build[MyApp]
app.run()
}
}
<dependency>
<groupId>org.wvlet.airframe</groupId>
<artifactId>airframe-core_2.12</artifactId>
<version>20.12.0</version>
</dependency>
import wvlet.airframe._
case class MyComponent()
class MyApp(myComponent: MyComponent) {
def run(): Unit = {
}
}
object Main {
def main(args: Array[String]): Unit = {
val design = newDesign
.bind[MyComponent].toInstance(MyComponent())
.bind[MyApp]
val app = design.build[MyApp]
app.run()
}
}