When using Spring all your configuration comes from properties and a mean to make it work is PropertyPlaceholderConfigurer (xml is no longer considered as a configuration, since Spring’s xml is something stable and considered to be part of codebase, in opposite to properties).
Nice it sounds, however, using placeholders has an annoying drawback, i.e. you can’t leave a property undefined if there is a reference to it in Spring xml, which basically makes a lot of sense and keeps you on the safe side. However, you would want to lessen your configuration maintenance efforts by specifying, where it may fit, default values for some of the properties. Before Spring 3.0 it was not easy to accomplish (PropertyPlaceholderConfigurer.setProperties overrides externally defined values).
Fortunately, guys in SpringSource came up with a neat way to do it, which makes it bish-bash-bosh now:
Such placeholder commands the Spring’s PropertyPlaceholderConfigurer to use defaultValue if property named propertyName is not found.
This saved me from a burden of maintaining a new property over a few of dozens of server-specific configuration .properties files, where only one required to have new functionality provided by a new property setting.
