2015-06-03 8 views
2

Мне удалось определить свойства сервис-компонента из Config.groovy.Как определить свойства Сервисного компонента из application.yml в Grails 3?

Цитирование Книга Полное руководство по Grails 2

Листинг 10-6. Настройка Бобы Использование Config.groovy

beans { 
    albumArtService { 
     artworkRequestUrl = 'http://itunes...' 
    } 
} 

Одним из преимуществ такого подхода заключается в том, что благодаря функции, предлагаемые по Config.groovy, вы можете легко определить за охрану окружающей среды, а значения чем закодировав значение в класс AlbumtArtService. При этом Код конфигурации на месте, жестко запрограммированное значение может быть удалено из формы класса AlbumArtService. Свойство все еще должно быть объявлено как полем класса, но не должно быть назначено значение. Рамки будет заботиться о инициализации свойства со значением указаны в Config.groovy

В Grails 2 я определил свойство боба службы, как описан выше.

Сейчас в Grails 3 Я пытаюсь определить свойства службы в моем application.ml файле:

environments: 
    development: 
     beans: 
      transactionalMailService: 
       mandrillApiKey: XAPIKEYVALUEX 
      shareWithShoptimixUseCaseService: 
       appStore: https://itunes/myapp 
     grails: 
      serverURL: http://localhost:8080 
     dataSource: 
      driverClassName: org.postgresql.Driver 
      dialect: org.hibernate.dialect.PostgreSQL9Dial 

    .... 
    ... 
    .. 
    . 

Тогда в моей службы:

class TransactionalMailService { 

    def mandrillApiKey 

    .... 
    ... 
    .. 
    . 
} 

Свойство не установлено, хотя. Любая идея, как это сделать в Grails 3?

ответ

1

У меня есть solution, но для меня это все еще обход.

Мне нравится, как контроллер и служебные свойства фасоли могут быть установлены в Grails 2. Но, будучи не в состоянии заставить его работать так же, как в Grails 3, я решил пойти с установкой свойств в Bootstrap.groovy

def init = { servletContext -> 
     myService.someProperty = 'some value' 
... 
} 

Я не считаю это ответ, но он работает.

0

Вам необходимо поместить несколько документов в один и тот же файл YML.

beans: 
    transactionMailService: 
     mandrilApiKey: real key 
--- 
spring: 
    profiles: development 
beans: 
     transactionMailService: 
     mandrilApiKey: dev key 

это (я думаю), потому что бобы настроены весной

 Смежные вопросы

  • Нет связанных вопросов^_^