play2.6-scala(一) 项目创建,配置

一、常用的四种创建新项目的方式 

1.直接创建一个play新项目

2.

      

3.用sbt创建项目

》命令行

sbt new playframework/play-scala-seed.g8  --------->  sbt run
然后打开 http://localhost:9000查看运行状况

》idea




根目录创建 plugins.sbt


具体结构要自己手动创建

4.从一些模板开始创建项目,常用的一些模板

二、配置

1.访问配置

class MyController @Inject() (config: Configuration, c: ControllerComponents) extends AbstractController(c) {
  def getFoo = Action {
    Ok(config.get[String]("foo"))
  }
}
// foo = bar
config.get[String]("foo")

// bar = 8
config.get[Int]("bar")

// baz = true
config.get[Boolean]("baz")

// listOfFoos = ["bar", "baz"]
config.get[Seq[String]]("listOfFoos")

 它接受一个隐式的ConfigLoader,但最常见的类型,如StringInt甚至Seq[String]还有已经加载定义那些你所期望的东西。

Configuration 还支持针对一组有效值进行验证:config.getAndValidate[String]("foo", Set("bar", "baz"))

2.ConfigLoader

通过定义自己的ConfigLoader,可以轻松地将配置转换为自定义类型。这在Play内部广泛使用,并且是为使用配置带来更多类型安全性的好方法。例如:

case class AppConfig(title: String, baseUri: URI)
object AppConfig {

  implicit val configLoader: ConfigLoader[AppConfig] = new ConfigLoader[AppConfig] {
    def load(rootConfig: Config, path: String): AppConfig = {
      val config = rootConfig.getConfig(path)
      AppConfig(
        title = config.getString("title"),
        baseUri = new URI(config.getString("baseUri"))
      )
    }
  }
}

然后可以像上面那样使用它

// app.config = {
// title = "My App
// baseUri = "https://example.com/"
// }
config.get[AppConfig]("app.config")

3.可选配置键

Play的Configuration支持使用该getOptional[A]方法获取可选的配置密钥它的工作原理类似get[A],如果密钥不存在返回None。建议设置可选键为null,而不是返回None,使用get[Option[A]]方法

但是,我们提供这种方法以提供给你以非标准方式使用configuration的接口

参考:https://www.jetbrains.com/help/idea/getting-started-with-play-2-x.html

posted @ 2018-06-02 16:41  飞末  阅读(611)  评论(0编辑  收藏  举报