play2.6-scala(一) 项目创建,配置
一、常用的四种创建新项目的方式
1.直接创建一个play新项目
2.
3.用sbt创建项目
》命令行
sbt new playframework/play-scala-seed.g8 ---------> sbt run
然后打开 http://localhost:9000查看运行状况
》idea
![](https://images2018.cnblogs.com/blog/1122709/201808/1122709-20180808165137115-2089683802.png)
![](https://images2018.cnblogs.com/blog/1122709/201808/1122709-20180808165202067-68497151.png)
根目录创建 plugins.sbt
![](https://images2018.cnblogs.com/blog/1122709/201808/1122709-20180808165359619-38697639.png)
具体结构要自己手动创建
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
,但最常见的类型,如String
,Int
甚至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