我在Play的开头绑定演员!申请如下:
class Modules extends AbstractModule with AkkaGuiceSupport with ScalaModule {
override def configure(): Unit = {
bindActor[MainSupervisor](MainSupervisor.name)
}
我想在不在生产中运行时停用MainSupervisor
。今天我直接在演员的Play.env
模式匹配,但我想将代码与此分开。
有没有办法在开发模式下直接在课程Modules
中绑定演员?
答案 0 :(得分:1)
您可以在配置文件中绑定模块,并且可以在prod和dev上使用不同的配置,因此您可以不在dev配置上绑定模块。
https://www.playframework.com/documentation/2.5.x/ScalaDependencyInjection#programmatic-bindings
答案 1 :(得分:1)
您有两种方法可以实现这一目标:
以编程方式
将Environment注入Module类并查询其模式
像
这样的东西class Modules(environment: Environment, configuration: Configuration)
extends AbstractModule with AkkaGuiceSupport with ScalaModule {
override def configure(): Unit = {
if (environment.mode == Mode.Prod) {
bindActor[MainSupervisor](MainSupervisor.name)
}
}
配置
为生产模式指定其他配置文件
在prod.conf中
include "application.conf"
play.modules.enabled += com.mycompany.MyModule