-
If you need it in an artifact that supports dependency injection, simply inject
grailsApplication
class MyController { def grailsApplication def myAction = { def bar = grailsApplication.config.my.property } }
-
If you need it in a bean in, say,
src/groovy
orsrc/java
, wire it up usingconf/spring/resources.groovy
// 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' } }
-
Anywhere else, it’s probably easiest to either pass the configuration object to the class that needs it, or pass the specific properties that are needed.
// 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) } }
Update:
Burt Beckwith recently wrote a couple of blog posts on this. One discusses using getDomainClass()
from within domain classes, while the other offers the option of creating your own holder class (if none of the solutions above are appropriate).