MacWire 0.2 发布,Scala 的依赖注入实现 - 开源中国社区
MacWire 0.2 发布,Scala 的依赖注入实现
红薯 2013年04月25日

MacWire 0.2 发布,Scala 的依赖注入实现

红薯 红薯 发布于2013年04月25日 收藏 6 评论 0

有免费的MySQL,为什么还要买? >>>  

MacWire 0.2 版本发布了,该版本简化了 scope 的处理。详情请看发行说明

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)
}
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:MacWire 0.2 发布,Scala 的依赖注入实现
分享
评论(0)
最新评论
顶部