1

Maven ビルド ツールに基づく Spring MVC プロジェクトがあります。私のアプリケーションでは、一部のデータについて外部サーバーへの Web サービス呼び出しを行う必要があります。私はそれを実装しましたが、すべてうまくいきます。

しかし、開発モードでは、むしろそれらを避けたいと思います。だから現在私は持っています

public static boolean devel = false

上記のブール値をif elseステートメントで使用して、開発モードの場合は静的データを提供します。開発モードでない場合は、Web サービス呼び出しを行います。

しかし、このブール宣言は汚いと思います。その意味で、コードを本番環境にデプロイするたびに、コード内のブール値を手動で修正する必要があります。そして、私はそれを忘れて大混乱を引き起こしました。

まともな方法はありますか?この変数をコードで宣言したくはありませんが、ビルドプロセス中に取得した定数またはおそらく VM 引数から取得します。あるいは、もっと良い方法かもしれません。もしそうなら、どうやってそれを春のMavenプロジェクトに組み込むか。

4

3 に答える 3

1

私が「まともな方法」と考えるのは(あなたがそう呼んでいるように)、依存性注入を使用することです。Springまたは Java CDI機能のいずれかを使用します。これはまさに、依存性注入が役立つタイプのシナリオです。

次に、2 つの異なるクラスによって実装されるインターフェイスを宣言します。

  1. 実際のクラス - リモートサーバーに接続し、
  2. 静的データを返す開発/テスト クラス。

次に、起動構成によって、2 つのクラスのどちらがアプリケーションに挿入されるかが決まります。

于 2013-09-16T09:27:02.397 に答える