I'd say use whichever you're more comfortable with. I tend to go with accessing grailsApplication.config
directly from the service, because that lets you make the configuration more "semantic" (for want of a better word) in the sense that you can name the configuration options after what they do, rather than which bean they control. And if two (or more) different beans need to know the site administrator's email address (for example) then they can both read grailsApplication.config.myapp.admin.email
rather than my having to configure beans.monitorService.destinationEmail
and beans.userService.fromEmail
separately.
In unit tests you'd have to mock the grailsApplication
config anyway, so it's no big deal filling in test values for the config options your services need to read.