Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Web-application configuration outside or inside war file?

A web application usually has at least one configuration file, that contains jdbc configuration and other settings. You can put such file(-s) inside a .war file or outside it. What are the cons and pros of these approaches? What is your approach and why?

like image 532
witzar Avatar asked Feb 26 '10 13:02

witzar


3 Answers

Imho, outside seems the most convenient if you need to deploy the same war in different environments. Like, dev, itt, uat and production. Same build different configurations.

like image 147
HeDinges Avatar answered Oct 13 '22 12:10

HeDinges


In my opinion an application setting value should never be merged with a binary. They should be placed in a separate file or database. This is a basic best practice. You never know when you or anyone else will need to adjust one of the settings -- and you may not be around -- or the source code may not be available.

like image 22
Marquez Avatar answered Oct 13 '22 11:10

Marquez


IMHO the best way is to use flexible approach and allow config to be inside and/or outside WAR (with some extra logic for config lookup order and what file/dir names that config may be kept in).

I have experience with extremely different deploy models/schemas - sometimes it is one build/many configs, other time - even: many builds/one config on one server - strange, but can happen ;-).

This may be especially helpful if you are developing some kind of platform that your customers/users may deploy in custom environments unspecified at WAR build time.

like image 41
WildWezyr Avatar answered Oct 13 '22 13:10

WildWezyr