Grails 2.4.5 здесь. Я сделал grails create-service com.example.service.Simple
, который создал SimpleService
для меня, который я тогда модифицированную выглядеть так:Конфигурирование и инъекция Услуги Grails
class SimlpeService {
SimpleClient simpleClient
Buzz doSomething(String derp) {
// ...
Fizz fizz = simpleClient.doSomething(derp)
// ...
fizz.asBuzz()
}
}
теперь я могу «впрыснуть» контроллеры с SimpleService
так:
class MyController {
SimpleService simpleService
def index() {
// etc...
}
}
Но как я configure/wire SimpleService
с правильным экземпляром SimpleClient
. Давайте предположим, что SimpleClient
, как правило, построены таким образом:
SimpleClient simpleClient = SimpleClientBuilder
.withURL('http://simpleclientdev.example.com/simple')
.withAuth('luggageCombo', '12345')
.isOptimized(true)
.build()
В зависимости от того, в какой среде я нахожусь, я может хочу, чтобы мой SimpleClient
экземпляр для подключения к simpleclientdev.example.com
, simpleclientqa.example.com
или даже simpleclient.example.com
. Кроме того, я могу использовать разные учетные данные для аутентификации, и я мог бы/не хотел бы, чтобы он был «оптимизирован» и т. Д. Точка: Как мне ввести SimpleService
с помощью экземпляра SimpleClient
?
Почему бы не создать службу, которая настраивает и возвращает «SimpleClient» в соответствии с тем, как она настроена для вашей среды через вашу конфигурацию (например, «Config.groovy»)? Так я подхожу к нему ... –