我能够从Config.groovy定义服务bean的属性。
引用“Grails的最终指南”2
清单10-6。使用Config.groovy配置Beans
beans {
albumArtService {
artworkRequestUrl = 'http://itunes...'
}
}
这种方法的一个优点是,由于Config.groovy提供的特性,您可以轻松地指定每个环境的值,而不是将值硬编码到AlbumtArtService类中。有了这些配置代码,硬编码的值就可以从AlbumArtService类中删除。属性仍然需要声明为类中的字段,但不应分配值。该框架将负责使用Config.groovy中指定的值初始化属性。
在Grails 2中,我定义了服务bean的属性,如前所述。
现在在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中这样做吗?
发布于 2015-08-02 19:28:12
我有一个解决方案,但对我来说,它仍然是一个解决方案。
我喜欢在Grails 2中设置控制器和服务bean属性的方式。
def init = { servletContext ->
myService.someProperty = 'some value'
...
}
我不认为这是答案,但确实有效。
发布于 2015-09-13 08:35:07
您需要将多个文档放入同一个YML文件中。
beans:
transactionMailService:
mandrilApiKey: real key
---
spring:
profiles: development
beans:
transactionMailService:
mandrilApiKey: dev key
这是(我认为)因为bean是由spring配置的。
https://stackoverflow.com/questions/30624596
复制相似问题