ほとんどのアプリケーションでは、いくつかの外部構成が必要になります。マジック変数に依存させるか、内部の場所に保存することで、これを非表示にすることができますが、その必要はなくなりません。目標は、何を外部にすべきか、何を内部にできるかを認識することです。内部部品のみをテストできます。
アプリケーションは、外部構成ファイルが正しいことを信頼してはなりません。正確性をチェックし、エラーを報告します。アプリケーションが構成ファイルをチェックできない場合は、おそらくそれを使いすぎています。構成ファイルがアプリケーションの動作を変更する場合、私の意見ではそれは外部であってはなりません。
たとえば、データベースのユーザー名/パスワードは、データベースに接続しようとすることにより、アプリケーションで簡単に確認できます。これが失敗した場合、それはそれを報告することができ、それは明らかにアプリケーションコードのバグではありません。同様に、ファイルパスの存在とアクセス権を確認できます。
これで、SQLクエリを構成ファイルに入れると、アプリケーションはそれらのクエリの正確さを簡単に確認できなくなります。同じことは、完全な依存性注入仕様(Java-Spring XMLの1つ)ファイルにも当てはまります。それらは外部設定ファイルに含まれるべきではありません。
しかし、指定された構成が外部のものを記述していて、その正しさをすぐに確認できれば、外部構成ファイルに問題はないと思います。
編集:エラーレポートに、使用されている構成ファイルが表示されていることも確認してください。何が問題なのかを見つけようと何時間も試みた後、間違ったファイルを探していたことがわかるほど、イライラすることはありません。