2

Grailsアプリケーションで、スケジュールされたジョブクラスからコントローラーに含まれるメソッドを呼び出したいと思います。

これを読むと[http://www.grails.org/Job+Scheduling+(Quartz)]、データソースとサービスがジョブクラスで名前によって自動配線されていることがわかります。これはデフォルトではコントローラーでは不可能なようです。おそらく、コントローラーがこの種のことを行うことは想定されていないためです。

ところで、grailsのジョブから呼び出されたコントローラーメソッドを取得する方法はありますか?そして、これはあなたにとって(そしてなぜ)そんなに悪い習慣でしょうか?

よろしくお願いします、ルカ

4

1 に答える 1

8

ControllerはWebリクエストを処理することを目的としているため、これは悪い習慣です-ユーザーセッションとすべてで。

Quartzジョブにはユーザーセッションがありません。

第二に、Controllerの機能を維持すること自体は悪いことです。Controllerは、他のビジネスロジックメソッドへの呼び出しのみを「制御」する方がよいでしょう。

すべての機能をのサービス、ドメインクラス、またはPOGOクラスのいずれかに移動することをお勧めしますsrc

もちろん、を呼び出すことはできますがnew MyController().method()、デフォルトではBeanはコントローラーに注入されません。

于 2011-02-09T10:18:34.837 に答える