1

アプリケーションのヘルスチェックを実装しています。アプリケーションのさまざまな論理システムのクラスを構成し、db count 、logging errors 、cpu process などの環境全体の状態をチェックするメソッドを作成しました。

現在、特定の条件、つまりホストに応じたクラス内の特定のメソッドのみをチェックする必要があるという要件があります。

プロパティファイルを介してこれらのメソッドにアクセスする最良の方法は何ですか? あなたの提案をしてください。

ありがとう。

4

2 に答える 2

0

必要なチェックごとに異なる Bean を定義できます。

<bean id="dbcountBean" class="DBCountHealtCheck" scope="prototype">
  <!-- bean properties -->
</bean>

次に、オペレーション Bean が注入された HealtCheck の Bean です。

<bean id="healtChecker" class="HealtChecker" scope="prototype">
  <property name="activeChecker"><bean class="PropertiesFactoryBean>
    <property name="location">file:path/to/file</property></bean>
  </property>
  <property name="dbCountCheck" ref="dbCountBean" />
<!-- other properties -->
</bean>

class HealtChecker  {
  private DBCountHealtCheck dbCountChecker;
  private Properties activeChecker;

  public void setDbcount(DBCountHealtCheck dbCountChecker) {
    this.dbCountChecker = dbCountChecker;
  }

  public void setActiveChecker(Properties activeChecker) {
    this.activeChecker = activeChecker;
  }

  public void check() {
    if("true".equals(this.activeChecker.get("dbCount")) {
      this.dbCountChecker.check();
  }
}

このソリューションでファイルをリロードできない場合は、プロパティをHealthChecker削除activeCheckerして、プロパティpublic void setPropertiesLocation(URL propertiesLocation);HealthChecker実装InitializingBeanしてロードしますafterPropertiesSet()

于 2013-08-17T00:30:30.533 に答える