Странное поведение абстрактного сервиса GORM - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть служба данных GORM:

@Service(Album)
abstract class AlbumService {

   abstract Album findByName(String name)

}

... классы, в которых я ее использовал ...

class Social {

    AlbumService albumService

    ...

}

class Media {

    AlbumService albumService

    ...

}

... и плагин для внедрения бинов:

class SomeGrailsPlugin extends Plugin {

    ...

    Closure doWithSpring() {
        { ->

            social(com.test.Social) {
                albumService = ref('albumService')
            }

            media(com.test.Media) {
                albumService = ref('albumService')
            }

        }
    }
}

... и это работает! Но только в одном случае (если удалить Media ). В следующих случаях я получаю это сообщение:

Описание:

Для компонента требуется компонент с именем 'albumService', который не может быть найден.

Действие:

Подумайте об определении bean-компонента с именем 'albumService' в вашей конфигурации.

Да, я знаю, что служба данных не является бином, и ее нужно внедрять другими способами ( контекст приложения или hibernateDatastore.getService ()). Но почему это работает в первом случае, а не во втором?

...