当前位置: 首页 > 知识库问答 >
问题:

如何在 Play 框架 Guice 模块中加载和读取配置

任伟
2023-03-14

问题:

我知道我们可以在Play框架应用程序的其余部分注入配置模块,但我想在模块配置期间获取我的appliciation.conf信息。我该怎么做?

   class BaseModule extends AbstractModule with ScalaModule with AkkaGuiceSupport {

    override def configure(): Unit = {
        val onAzure = ??? // < How can I pull configuration here?
        if (onAzure) {
        bind[PersonService].to[AzurePersonService]
        } else {
        bind[PersonService].to[AWSPersonService]
        }
    }

共有1个答案

盖昀
2023-03-14

解决方案:

您可以在模块文件中手动实例化配置

    import com.typesafe.config.ConfigFactory
    import play.api.Configuration


    class BaseModule extends AbstractModule with ScalaModule with AkkaGuiceSupport {
    private val logger = Logger(this.getClass)

    override def configure(): Unit = {
        val config = new Configuration(ConfigFactory.load())
        val onAzure = config.get[Option[Boolean]]("cloud.mode.onAzure").getOrElse(false)
        if (onAzure) {
        bind[PersonService].to[AzurePersonService]
        } else {
        bind[PersonService].to[AWSPersonService]
        }
    }
 类似资料:
  • 我正在编写一个处理多个系统的应用程序。用户可以选择他想使用的系统,我将该系统ID存储在会话(客户端会话)中 现在我有了服务类,比如说CustomerService。 我想使用 Guice 将客户实例注入控制器。但是我想使用存储在会话中的系统ID实例化客户服务。 如何访问<code>请求。Guice模块中的会话? 编辑: 简化了我上面的代码。我的实际代码使用接口。我如何使用辅助注射? 这给了我:客户

  • 问题内容: 不得不与Guice打交道,我想知道我应该如何处理模块方面的依赖关系。 在Guice中,每个模块都是由实例提供的。因此,如果我有一个需要某种服务的模块,它将创建一个向该服务添加绑定的模块并进行安装(binder.install(module))。 现在,我有两个独立的模块,完全可以独立使用,并且都安装了相同的数据库模块。 单独使用两个模块都不会出现问题,但是如果两个模块在同一应用程序中使

  • 本文向大家介绍javascript框架设计读书笔记之模块加载系统,包括了javascript框架设计读书笔记之模块加载系统的使用技巧和注意事项,需要的朋友参考一下 模块加载,其实就是把js分成很多个模块,便于开发和维护。因此加载很多js模块的时候,需要动态的加载,以便提高用户体验。 在介绍模块加载库之前,先介绍一个方法。 动态加载js方法: 由于司徒正美使用了它写的mass框架来介绍模块加载,而业

  • 问题内容: 我已经在互联网上搜寻了好几个小时了,有很多“有用的”建议……除了问题之外什么也没有。 这就是我,几乎完全是: 在Docker容器中播放框架自动加载 我正在运行Play的最新版本(我认为,不知道如何检查,但下载了<一周前)!具有Java 8的ubuntu docker容器内部的框架,使用以下dockerfile构建: 互联网上的多个来源显示出相同或相似的问题,或多或少得出了相同的结论。我

  • **编程对象,Settings.UseJavaCP.Value=true。 Build.Scala

  • 随着互联网的飞速发展,前端开发越来越复杂,导致开发经常出现两个问题: 恼人的命名冲突 烦琐的文件依赖 针对这两个问题,可以使用js模块化技术来解决。当前主流的js模块化有两大规范CMD(Seajs)和AMD规范(RequireJS)。WeX5采用RequireJS(AMD规范)来实现,关于RequireJS的详细说明参考:http://www.requirejs.org/ 接下来我们介绍在WeX5