如何阅读/理解@Inject()。。。在这个Scala代码中?
在中,答案是如何阅读/理解@Inject()。。。在这个Scala代码中?,scala,dependency-injection,Scala,Dependency Injection,在中,答案是应用程序类必须这样定义: class Application @Inject()(val messagesApi: MessagesApi) extends Controller with I18nSupport { 我的理解是: 命名的应用程序 扩展控制器 混合特质I18nSupport 如何在中间读取/理解 @注入(和(Val.…)?为什么是这样写的,这意味着什么 如何在中间读取/理解 @注入(和(Val.…)?为什么是这样写的,这意味着什么 @Inject()称为。注释
应用程序
类必须这样定义:
class Application @Inject()(val messagesApi: MessagesApi) extends Controller with I18nSupport {
我的理解是:
- 命名的
应用程序
- 扩展
控制器
- 混合特质
I18nSupport
称为。注释允许向声明、类型或表达式添加任意元数据。可以在运行时或编译时查询此元数据@Inject()
称为。构造函数是在创建类的实例时调用的子例程,其目的是设置对象的初始状态,使其可以使用并满足其所有不变量(val…
称为。注释允许向声明、类型或表达式添加任意元数据。可以在运行时或编译时查询此元数据@Inject()
称为。构造函数是在创建类的实例时调用的子例程,其目的是设置对象的初始状态,使其可以使用并满足其所有不变量(val…
def messagesApi:messagesApi
的结合。您需要提供实现。因此您将其定义为val messagesApi:messagesApi
@Inject
意味着-构造函数参数将由依赖项注入提供。除了@PavelOliynyk所说的,还解释了这些文档对新手不太欢迎。默认情况下,Play在引擎盖下使用Guice进行DI。在前面提到的问题中,有一位评论者链接到了一些非常有用的Guice文档,看起来这是一个关于依赖注入的一般性问题。因此肯定会有帮助:I18nSupport是trait与abstractdef messagesApi:messagesApi
的结合。您需要提供实现。因此您将其定义为val messagesApi:messagesApi
@Inject
意味着-构造函数参数将由依赖项注入提供。除了@PavelOliynyk所说的,还解释了这些文档对新手不太欢迎。默认情况下,Play在引擎盖下使用Guice进行DI。在前面提到的问题中,一位评论者链接到一些可能会有所帮助的优秀Guice文档。