There are basically two kinds of properties;
- Properties that belong to the environment - for example the database you connect to when you are running the application in Dev. as opposed to the database you connect to when you are running in Prod.
- Properties that crosscut environments - for example how you want to log or the resource bundle you are using for messages.
That said you may want to override properties in certain environments - for instance you may want to use a different message bundle in Prod w/o recompiling or restarting the application:
- There needs to be a hierarchical and consistent way to override properties.
- Properties need to be configurable at runtime.
These are some of the basic premises used to arrive at the current practice of how properties are implemented.
Add Comment