title: Best practice of storing Java UI application configuration/settings
body: <p>I'm researching what is the best way to store application configuration data while supporting hierarchy and dynamic loading.</p>
  
  <p><strong>Data examples:</strong></p>
  
  <ul>
  <li>Where to locate each column (we would display a lot of tables)</li>
  <li>How to visualize data in each column or cell (for example some column may have different ways to show the same metric)</li>
  <li>Data format (date or numbers)</li>
  </ul>
  
  <p><strong>Hierarchy means:</strong></p>
  
  <p>I have a state that has several districts, so there will be default configuration, but a state can override parts (or all) of the default configuration and a district can override parts of the state configuration.</p>
  
  <p><strong>Dynamic loading</strong> means:</p>
  
  <p>Ability to dynamically load and apply new configuration without needing a server restart or even user login.</p>
  
  <p><strong>Configuration storing format</strong> (can be files or DB):</p>
  
  <ul>
  <li>XML – that's what I was using in the past</li>
  <li>JSON - so I can read JSON from a config file or database and have it as an object in the app memory</li>
  <li>Key-Value pairs</li>
  <li>other formats? </li>
  </ul>
  
  <p>What are your thoughts/knowledge about this subject?</p>
  
  <p>Thank you!</p>