我最近遇到了一个问题,试图让我的JMS @Subscriber主题成为一个基于环境的变量。目前,我的config.groovy:
environments {
development {
jms.foo.msg = "my.jms.topic.dev.1_0"
}
test {
jms.foo.msg = "my.jms.topic.tst.1_0"
}
production {
jms.foo.msg = "my.jms.topic.prd.1_0"
}
}
在我的服务中,我有@Subscriber,我有这个:
@Subscriber(
topic = grailsApplication.config.jms.foo.msg,
container = 'matter',
adapter = 'durable'
)
我得到的错误是: “预计'grailsApplication.config.jms.foo.msg'是一个内联常量。”
我在这里尝试了很多获取配置值的变体。我正在寻找的是如何在特定环境下订阅正确的主题。任何想法都表示赞赏。
答案 0 :(得分:0)
尝试使用Holders(自Grails v2.0起):
import grails.util.Holders
然后使用:
@Subscriber(
topic = Holders.getConfig().jms.foo.msg,
container = 'matter',
adapter = 'durable'
)