콘텐츠로 이동

2023 04 04

2023-04-04

Scala macwire

  • macwire
    • 스칼라 macro를 활용하여 간단하게 dependency를 관리할 수 있또록 도와줌
    • wire 메서드 자체는 객체를 생성하고, DI를 자동적으로 수행할 수 있도록 도와주는 역할을 수행
  • wire ```scala package com.softwaremill

    import scala.language.experimental.macros

    package object macwire { def wire[T]: T = macro MacwireMacros.wire_impl[T] } ```

  • ApplicationLoader
    class ApplicationLoader extends GuiceApplicationLoader {
    
        @Singleton
        class TempGlobalSettings(configuration: Configuration, lifecycle: ApplicationLifecycle) extends GlobalSettings {
    
            override def onStart(app: Application) = {
                // dependency class
                val aObject = wire[AObject]
                val bObject = wire[BObject]
                val cObject = wire[CObject]
            }
        }
    }