我正在将播放框架应用程序从2.4.6升级到2.5.x. 有几次我调用属于某个对象的帮助器方法。这些辅助方法使用play的内置类(例如play.api.Play.current.configuration.underlying.getString)来完成作业。播放2.5.X依赖项注入
我得到以下警告:“在对象播放方法目前已被弃用:这是一个静态的参考应用,使用DI代替”
如果我面对类方法这个问题,那么我就可以使用依赖注入。如何处理方法属于对象的情况,并警告我使用DI?
我正在将播放框架应用程序从2.4.6升级到2.5.x. 有几次我调用属于某个对象的帮助器方法。这些辅助方法使用play的内置类(例如play.api.Play.current.configuration.underlying.getString)来完成作业。播放2.5.X依赖项注入
我得到以下警告:“在对象播放方法目前已被弃用:这是一个静态的参考应用,使用DI代替”
如果我面对类方法这个问题,那么我就可以使用依赖注入。如何处理方法属于对象的情况,并警告我使用DI?
Play Framework通常会提供一个您可以注入的类,而不是使用旧的静态引用。
例如,下面就意味着你可以停止使用Play.current.configuration
和DB
:
import javax.inject.Inject
import play.api.db.Database
import play.api.Configuration
class MyClass @Inject() (configuration: Configuration, db: Database) {
...
}
如果您使用依赖注入你可以改变你的对象类,它会做的工作。与@Singleton注释它 – stsatlantis
这种方法的问题是如果我想使用辅助方法(改变对象类@Singleton注解之后),发挥出如下错误: 对象ClientHandler的是不包控制器 [错误的构件]注意:ClientHandler类存在,但它没有伴随对象。 [错误] controllers.ClientHandler.getClientUrl – Shailesh