1

クラス名に *Service 接尾辞規則を使用せずに Grails サービスを作成したいと考えています (たとえば、ScheduleService の代わりに自分のクラスに Scheduler という名前を付けます)。とにかくGrailsのデフォルトの動作をオーバーライドして、grails-app/serviceディレクトリ内のオブジェクトをGrailsサービスとして扱いますか?

4

4 に答える 4

3

私はそうは思いませんが、Bean に別の名前を使用したいという理由がある場合は、scheduleService のエイリアスを登録してみてください。このページのコメントによると、これを resources.groovy に追加できるはずです。

springConfig.addAlias('scheduler','scheduleService')

ただし、自分で試したことはなく、ドキュメントには何も見つかりませんでした。

于 2012-12-20T19:08:08.600 に答える
1

それが可能だとは思わないでください。これは、grails フレームワークで暗示された「規則」の一部だからです。

于 2012-12-20T18:18:25.850 に答える
1

Grails サービスは、信じられないかもしれませんが、プラグインを使用して Bean として登録されるため、独自のプラグインを作成することでこれを実現できるはずです。

grails-plugin-services sourceを見てください。監視対象のサービスが次の行に組み込まれていることがわかります。

def watchedResources = ["file:./grails-app/services/**/*Service.groovy",
                        "file:./plugins/*/grails-app/services/**/*Service.groovy"]

さて、それが可能であるという事実にもかかわらず、少し作業が必要になるかもしれませんし、それは悪い考えかもしれません. 本当にわかりません。watchedResources基本的にサービス プラグインをコピーし、変更して独自のプラグインにラップした場合、Grails がびっくりするかどうかはわかりません。

grails のドキュメントをざっと見ただけですが、Artefacts に関するセクション役立つはずです。

サービスを参照する簡単な方法を探しているだけの場合は、次のようにします。

def painfullyLongNameService
def getNoPain() {return painfullyLongNameService}

noPain.yourServiceFunction()
于 2012-12-21T05:55:17.690 に答える