首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置play-slick和示例

配置play-slick和示例
EN

Stack Overflow用户
提问于 2013-10-29 08:09:05
回答 1查看 761关注 0票数 1

我目前正在尝试使用Play! Framework 2.2play-slick (主分支)。在play-slick代码中,我想重写驱动程序定义,以便添加Oracle驱动程序(我使用的是slick扩展)。在Config.Scala of play slick,我刚刚看到/** Extend this to add driver or change driver mapping */ .

我来自遥远的地方(目前正在用Scala阅读编程),所以有很多需要学习的地方。所以我的问题是:

  1. 有人能解释一下如何扩展这个Config对象吗?此对象用于其他类中..。蛋糕燕麦在这里有用吗?
  2. 说到蛋糕图案,我读了play slick提供的计算机数据库示例。这个示例使用蛋糕模式和import play.api.db.slick.Config.driver.simple._ --如果我使用的是Oracle驱动程序--我不能使用这个导入,我错了吗?如何使用蛋糕模式来定义隐式会话?

非常感谢。等你的建议,我还在家里学习游戏代码:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-29 14:07:50

  1. 为了扩展Config特性,我不认为蛋糕模式是必需的。您应该能够像这样创建Config对象: 导入scala.slick.driver.ExtendedDriver对象MyExtendedConfig扩展play.api.db.slick.Config {重写def driverByName: String => OptionExtendedDriver = {name: String => super.driverByName(name) orElse Map("oracledriverstring“-> OracleDriver).get(name) }惰性val应用= play.api.Play.current惰性val驱动程序: ExtendedDriver = driver()( app ) } 为了能够使用它,您只需要做:import MyExtendedConfig.driver._而不是import play.slick.db.api.Config.driver._。顺便说一句,我看到driverByName的类型可能是一个映射,而不是一个函数,这使得它更容易扩展。这不应该中断,但这样做会更容易。
  2. 我认为Jonasér的旧博客是一个很好的地方来阅读蛋糕模式(http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di/)。我对它的天真理解是,当您有使用self类型的层时,您有一个蛋糕模式: 属性FooComponent{驱动程序: ExtendedDriver =>导入driver.simple._类Foo扩展表Int{//.}} slick/play-slick中的蛋糕模式有两个用例: 1)如果您有引用其他表的表(如计算机数据库示例中的那样),2)可以控制在什么时候使用哪个数据库,或者如果您使用许多不同的类型。通过使用Config,您实际上并不需要蛋糕模式,只要您只有两个不同的do (一个用于prod,一个用于测试),这就是Config的要点。

希望这能回答你的问题,并祝你在Scala阅读编程方面好运(喜欢那本书:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19652804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档