簡體   English   中英

在示例播放剪影模板中定義隱式環境值(使用Guice)

[英]Definition of implicit environment value in example play-silhouette template (using Guice)

此處找到的剪影實現示例中,例如,如何在模板中的/app/controllers/SignUpController.scala的第28行中使用隱式“ env”值(Environment [User,CachedCookieAuthenticator]類型)(例如,使用Guice定義)?

我想我不明白如何使用app / utils / di / SilhouetteModule.scala中的ProvideEnvironment通過在app / Global.scala第24行中創建的“注入器”將“剪影”環境“注入” SignUpController(例如)。 我看不到在play-silhouette-slick-seed示例中的任何地方都使用了provideEnvironment,因此我似乎無法弄清楚為其參數提供了哪些值(例如userService,authenticatorService等)。

這個剪影模塊的示例使用Guice進行scala依賴注入框架。 所有綁定均在util.di.SilhouetteModule.scala文件中配置。 還有另一個示例,其中依賴注入被Cake模式代替。 看這個

簡而言之:

如果查看Global.scala文件,則會找到guice配置。 Guice被迫創建每個控制器。 每個視圖都取決於控制器,也將由guice管理。

如上所述, SilhouetteModule.scala文件用於配置Silhouette模塊。 @Provides注釋的方法@Provides 如果您查看Guice文檔 Guice每次需要該方法返回的類類型時,便會調用該方法,例如:每次guice需要注入Environment[User, CachedCookieAuthenticator]它都會調用def provideEnvironment方法,因為該方法返回了此類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM