MacWire

授权协议 Apache
开发语言 Scala
所属分类 程序开发、 面向方面AOP/IoC
软件类型 开源软件
地区 不详
投 递 者 司徒墨竹
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

MacWire 为给定的类生成新的实例创建代码,在 Scala 宏的帮助下通过在构造函数参数的封闭类型中使用值实现。

MacWire 可以帮助实现依赖注入模式,不必须手工编写代码。

示例代码:

class DatabaseAccess()
class SecurityFilter()
class UserFinder(databaseAccess: DatabaseAccess, securityFilter: SecurityFilter)
class UserStatusReader(userFinder: UserFinder)

trait UserModule {
    import com.softwaremill.macwire.MacwireMacros._

    lazy val theDatabaseAccess   = wire[DatabaseAccess]
    lazy val theSecurityFilter   = wire[SecurityFilter]
    lazy val theUserFinder       = wire[UserFinder]
    lazy val theUserStatusReader = wire[UserStatusReader]
}

生成的代码:

trait UserModule {
    lazy val theDatabaseAccess   = new DatabaseAccess()
    lazy val theSecurityFilter   = new SecurityFilter()
    lazy val theUserFinder       = new UserFinder(theDatabaseAccess, theSecurityFilter)
    lazy val theUserStatusReader = new UserStatusReader(theUserFinder)
}
  • MacWire 0.2 版本发布了,该版本简化了 scope 的处理。详情请看发行说明。 MacWire 为给定的类生成新的实例创建代码,在 Scala 宏的帮助下通过在构造函数参数的封闭类型中使用值实现。 MacWire 可以帮助实现依赖注入模式,不必须手工编写代码。 示例代码: class DatabaseAccess() class SecurityFilter() class UserFi

相关阅读

相关文章

相关问答

相关文档