首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Grails 3中从application.yml定义Service的属性?

如何在Grails 3中从application.yml定义Service的属性?
EN

Stack Overflow用户
提问于 2015-06-03 15:34:22
回答 2查看 727关注 0票数 2

我能够从Config.groovy定义服务bean的属性。

引用“Grails的最终指南”2

清单10-6。使用Config.groovy配置Beans

代码语言:javascript
运行
复制
beans {
    albumArtService {
        artworkRequestUrl = 'http://itunes...'
    }
}

这种方法的一个优点是,由于Config.groovy提供的特性,您可以轻松地指定每个环境的值,而不是将值硬编码到AlbumtArtService类中。有了这些配置代码,硬编码的值就可以从AlbumArtService类中删除。属性仍然需要声明为类中的字段,但不应分配值。该框架将负责使用Config.groovy中指定的值初始化属性。

在Grails 2中,我定义了服务bean的属性,如前所述。

现在在Grails 3中,我试图在我的application.ml文件中定义服务属性:

代码语言:javascript
运行
复制
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

    ....
    ...
    ..
    .

在我的服务中:

代码语言:javascript
运行
复制
class TransactionalMailService {

    def mandrillApiKey

    ....
    ...
    ..
    .
}

但是,该属性没有被设置。知道如何在Grails 3中这样做吗?

EN

回答 2

Stack Overflow用户

发布于 2015-08-02 19:28:12

我有一个解决方案,但对我来说,它仍然是一个解决方案。

我喜欢在Grails 2中设置控制器和服务bean属性的方式。

代码语言:javascript
运行
复制
def init = { servletContext ->
        myService.someProperty = 'some value'
...
}

我不认为这是答案,但确实有效。

票数 1
EN

Stack Overflow用户

发布于 2015-09-13 08:35:07

您需要将多个文档放入同一个YML文件中。

代码语言:javascript
运行
复制
beans:
   transactionMailService:
      mandrilApiKey: real key
---
spring:
    profiles: development
beans:
      transactionMailService:
        mandrilApiKey: dev key

这是(我认为)因为bean是由spring配置的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30624596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档