#grails #grails-2.0
Вопрос:
Можно ли получить все расширенные сервисы из определенного интерфейса в grails
Таким образом, я могу собрать их в рамках одной службы
Ответ №1:
Да, я думаю, вы можете сделать это, автоматически подключившись к List
вводу. Допустим, у вас есть три реализации интерфейса BaseService
в grails-app/services
as:
grails-приложение/услуги/пример приложения/BaseService.groovy
package exampleapp interface BaseService { }
grails-приложение/услуги/пример приложения/OneImplService.groovy
package exampleapp class OneImplService implements BaseService { }
grails-приложение/услуги/пример приложения/TwoImplService.groovy
package exampleapp class TwoImplService implements BaseService { }
Теперь вы можете внедрить все реализации BaseSerive
следующего:
grails-приложение/сервисы/exampleapp/TestService.groovy
package exampleapp import org.springframework.beans.factory.annotation.Autowired class TestService { @Autowired Listlt;BaseServicegt; baseServiceList void doSomething() { assert baseServiceList.size() == 2 } }
Пожалуйста, обратите внимание, что приведенный выше пример протестирован с помощью веб-приложения Grails 5. Но я был бы удивлен, если бы это не работало в предыдущих версиях Grails.