Hi!
I've been looking at refreshable configuration for our app too. James makes the point that the Play configuration object really is intended to be read at startup and static during runtime. So it makes sense to use it to "bootstrap" the dynamic configuration objects in your application.
There are lots of ways to do dynamic configuration changes at runtime -- and I'm looking at melding the Spring Framework with Play. The hope is to make Play a little more "enterprisey" so I can continue to use it for what it's good at...
talks about a new @Refreshable annotation in Spring Framework intended for the use case of components that require dynamic configuration changes at runtime.
The video talks about the new Spring Cloud initiative which appears to be mixing in some components developed by Netflix -- including a dynamic configuration "server" that can be used with @Refreshable. But you can use your own sources of dynamic configuration data as needed.
So using Play configuration to bootstrap a Spring context, and using the refreshable mechanism to DI your Play controllers and services might be a way to proceed.
The Spring Scala project provides a scala dsl for defining your Spring beans, amongst other convenience features.
I'm hoping that this approach will be even more useful with Play 2.4 -- as DI becomes better supported in Play...
Anyway, I can't say I have this working, so it's just one option to consider...
Cheers,
Steven