из Play 2.7.x Я не могу достать play.api.Application
, я пробовал несколько способов, например, из пользовательского модуля (плагина) или даже из моего ApplicationController
. Я всегда получаю следующую ошибку циклических зависимостей:
ProvisionException: Unable to provision, see the following errors:
1) Found a circular dependency involving play.api.Application, and circular dependencies are disabled.
at play.api.DefaultApplication.class(Application.scala:252)
while locating play.api.DefaultApplication
while locating play.api.Application
for the 10th parameter of controllers.ApplicationController.<init>(ApplicationController.scala:30)
while locating controllers.ApplicationController
for the 2nd parameter of router.Routes.<init>(Routes.scala:111)
while locating router.Routes
while locating play.api.inject.RoutesProvider
while locating play.api.routing.Router
for the 3rd parameter of play.api.http.DefaultHttpRequestHandler.<init>(HttpRequestHandler.scala:120)
while locating play.api.http.DefaultHttpRequestHandler
while locating play.api.http.HttpRequestHandler
for the 6th parameter of play.api.DefaultApplication.<init>(Application.scala:253)
at play.api.DefaultApplication.class(Application.scala:252)
while locating play.api.DefaultApplication
while locating play.api.Application
1 error
Например, из моего пользовательского модуля DynamicTemplateLoader
:
@Singleton
class DynamicTemplateLoader @Inject(app: play.api.Application) {
...
}
или из моего ApplicationController
:
class ApplicationController @Inject() (
components: ControllerComponents
)(
implicit app: play.api.Application
) extends AbstractController(components) with I18nSupport {
...
}
Зачем мне нужен play.api.Application
? Мне нужно достать app.classloader
, чтобы использовать отражение от моего плагина.