В Java есть Preferences API . По сути, это стандартизированная версия службы настроек, которая загружает конфигурацию из разных разумных мест. Это может быть улучшением по сравнению с тем, как вы делаете вещи в данный момент, но это на самом деле не меняет архитектуру, которая, похоже, является тем, чем вы недовольны.
С точки зрения архитектуры, то, что вы могли бы после, это внедрение зависимостей; это тема, о которой так много написано, что мне бесполезно ее описывать. Идея заключается в том, что какая-то внешняя сила берет на себя задачу загрузки настроек и передачи их вашим классам, а не тому, что ваш код должен тянуться и извлекать их. Внедрение зависимостей обычно связано с веб-приложениями, но вполне возможно использовать это в автономных приложениях. Я думаю, что это даже довольно просто с PicoContainer; Я понятия не имею о весне.