Grailsの 'User'ドメインクラスに 'GraauditService'を注入しようとしています。
私は輸入com.gra.audit.GraauditServiceドメインクラスでgrailsサービスを注入する問題
class User {
def graauditService // or even GraauditService graauditService with graauditService as transient
.......
以上が動作しないコントローラ
にそうであるように、私は直接注入する方法を試してみましたが、Grailsの1.3.7 を使用しています。 graauditService
は常にnull
として来ている私はまたhere
を示すようApplicationHolder
を通じて注入しようとしたが、ApplicationHolderが、今
私は、ドメインクラスのサービスを利用することができますどのように推奨されませんように見えますか?
これは、従来のウェブアーキテクチャは、ドメインがカーネルである[マイクロカーネルパターン](http://en.wikipedia.org/wiki/Microkernel)に似ています。長い話は短いです:ドメインクラスは "ビジネスドメイン"ロジックを扱い、時にはドメイン指向サービスはドメインを含む共通のアクションを提供するファサードとして機能します。だから、Grailsはドメインクラスにサービスを注入しません。そこから呼び出すことはできません。 何をしようとしていても、おそらくサービス層でやり遂げるのに適しています。達成する必要があるものを拡大してください。 – Esteban
save、delete、loadなどの、このドメインクラスのさまざまなイベントにauditlogエントリを追加しようとしています。 –
@Esteban GrailsがGrails domanクラスにサービスを注入しないというのは真実ではありません。私のアプリケーションでは 'springSecurityService'を自分のドメインクラスに挿入することができましたので、保存する前にユーザーのパスワードをエンコードすることができます。私はドメインクラスにサービスを注入することは常に悪い練習であるというあなたの主張に同意しない –