0

私はHibernateを使用してSpring3MVCWebアプリを作成する基本的な段階にあります。すべてのデータモデルクラスがデータベーステーブルプレフィックス名などの基本的な構成値にアクセスできるようにしたい。このオプションが必要なので、私(または他の開発者)は.propertiesで変更することでその場で変更できます。ファイル。

.propertiesファイルから一連のプロパティをロードする静的ブロックを使用してutilパッケージにConfigクラスを作成するのが最善の策ですか?クラス自体は静的であり、さまざまなゲッターが内部の値にアクセスできると思います。

上記の方法を選択した場合、何らかの理由で指定した.propertiesファイルをロードできなかった場合に、アプリケーションがロードされなかった(穏やかに失敗した)ことをどのように保証できますか?例外を除いて?

私のやり方が悪臭を放つ場合、より良いシナリオは何でしょうか?

ありがとう!

4

1 に答える 1

1

それは私見の良いアプローチです。このクラスのBeanを明示的に宣言する場合は、次のようになります。

<bean id="myConfig" class="com.yourcompany.yourproject.Config"/>

Beanをインスタンス化できない場合、Springは起動時に失敗します。したがって、プロパティファイルが読み取れない/使用できない場合は、Configsコンストラクタからチェックされていない例外をスローするだけです。

-何らかの理由で-遅延読み込みをグローバルに有効にした場合は、このBeanに対して明示的に無効にする必要があります。そうしないと、フェイルファストソリューションが得られません。

<bean id="myConfig" class="com.yourcompany.yourproject.Config" lazy-init="false"/>

編集:このシナリオのもう1つの優れた機能は、mavenにリソース(.propertiesファイル)を「フィルター」するように指示でき、すべてのmaven変数を取得できることです。これが私のプロップファイルの外観です(この情報を[バージョン情報]ダイアログに使用します。誰かが約ダイアログを開いたことはありますか?)

project.version=${project.version}
project.name=${project.name}
project.organization.name=${project.organization.name}
project.url=${project.url}
project.description=${project.description}
于 2012-06-27T10:06:06.893 に答える