Bagaimana cara mendefinisikan nama layanan di grails?

Di grails ketika Anda membuat layanan, ia memiliki nama kelasnya. Jadi jika saya membuat KategoriLayanan, di pengontrol, saya menambahkan 'def kategoriLayanan' di pengontrol.

Namun cara mendefinisikan nama berbeda dari kelasnya. Contoh: 'mycategorySvc'?

Terima kasih


person Jonathan Lebrun    schedule 02.04.2011    source sumber


Jawaban (2)


Anda harus memasangnya sendiri di file spring/resources.groovy. Meskipun demikian, saya tidak akan merekomendasikan melakukan hal semacam ini karena beberapa alasan

  1. Memperpendek kata Layanan menjadi Svc tidak memberi Anda keuntungan apa pun
  2. Pengembang grail lain yang melihat kode Anda dalam 6 bulan akan berkata "WTF?"

Saya ingin mendengar argumen untuk MyCategorySvc atas MyCategoryService.

Dan BTW, bagian pertama tidak masalah (MyCatagory). Itu tidak harus cocok dengan domainnya. Satu-satunya hal yang diperlukan untuk injeksi otomatis adalah kata Service di akhir. Anda dapat membuat layanan bernama JooHooBooDooService dan memasukkannya ke dalam CategoryController dengan baik.

person Gregg    schedule 02.04.2011
comment
Ya, Anda benar, tetapi itu karena ada bug di Grails dengan beberapa layanan. Saya mendapatkan kesalahan mypackage.MyCategoryService tidak dapat ditransmisikan dengan mypackage.MyCategoryService - person Jonathan Lebrun; 07.04.2011
comment
Grail versi apa dan bisakah Anda lebih deskriptif tentang bug tersebut? - person Gregg; 07.04.2011
comment
jira.grails.org/browse/GRAILS-7302 Saya mempunyai pesan yang sama dan saya gunakan kode dengan @Transaksional. Terima kasih atas bantuan Anda - person Jonathan Lebrun; 12.04.2011

Saya kira Anda menghadapi beberapa masalah casting lainnya tetapi hanya untuk menjawab pertanyaan itu. Cara melakukan ini adalah dengan mendefinisikan kacang kita di resources.groovy.

Asumsikan saya memiliki QuestionAnswerService alih-alih nama questionAnswerService yang saya inginkan qns, jadi saya akan mendefinisikan qns bean di resources.groovy

 beans = {
    qns(QuestionAnswerService){ 
    }
 }

dan cukup masukkan layanan saya dengan nama ini di pengontrol dan layanan apa pun

def qns

itu saja, saya telah menyuntikkan kacang qns bernama QuestionAnswerService

Semoga ini bisa membantu. Terima kasih

person Anshul    schedule 29.10.2015