// src/groovy/com/example/MyBean.groovy
class MyBean {
def grailsApplication
def foo() {
def bar = grailsApplication.config.my.property
}
}
// resources.groovy
beans = {
myBean(com.example.MyBean) {
grailsApplication = ref('grailsApplication')
// or use 'autowire'
}
}
在其他任何地方,最简单的方法可能是将配置对象传递给需要它的类,或者传递所需的特定属性。
// src/groovy/com/example/NotABean.groovy
class NotABean {
def foo(def bar) {
...
}
}
// called from a DI-supporting artifact
class MyController {
def grailsApplication
def myAction = {
def f = new NotABean()
f.foo(grailsApplication.config.my.property)
}
}
7条答案
按热度按时间dvtswwa31#
grailsApplication
src/groovy
或src/java
中的bean中使用它,请使用conf/spring/resources.groovy
连接它Burt Beckwith最近在域类中写了几篇关于这个. One discusses using
getDomainClass()
的博客文章,而另一篇文章提供了creating your own holder class的选项(如果上面的解决方案都不合适的话)。nlejzf6q2#
grailsApplication的一个替代方法是Holders类,
您可以直接从Holders中获取配置,不需要注入,这对于实用程序类等来说是很好的。
p4tfgftt3#
您可以将“grailsApplication”注入到源文件中。下面是一个示例conf/Bootstrap.groovy
bvuwiixz4#
另一种不过时的获取配置的方法是:
这适用于没有可用的注入父对象的情况,例如servlet类或静态方法。
zrfyljdw5#
您可以访问grails配置
1.在控制器中
1.在服务方面:
1.在标记库中:
您可以在view中调用taglib的此方法
<cd:demoMethod/>
1.查看:
d7v8vwbk6#
要从域类访问,请执行以下操作:
72qzrwbm7#