2017-11-28 12 views
0

私が使用している顧客に応じて異なる動作をするアプリケーションを使用している場合、顧客間のコードの違いを処理する最良の方法は何ですか?私は考えることができる複数の顧客向けのSpringアプリケーション

2つの方法があります:顧客の特定のBeanの

  1. - 顧客に応じた豆に注釈を付け、および自動ワイヤは、実行時に私のために正しいクラスを選択しましょう。

  2. は、私は、このためのSpring Profilesを使用することになり

+0

'@修飾子 'を使用してみることができますか?それはあなたが質問で言ったあなたの第一の方法のようなものです。 –

+1

は、メインプロジェクトのメインプロジェクトに共通のものを保持し、異なる顧客に対して異なるロジックを持つ 'サブプロジェクト 'を作成します。コアモジュールの 'dependency'をサブプロジェクトに追加します。異なる顧客のために異なる戦争とスキーマを保つ。将来的には、奇妙な方法で1つの顧客に対してのみ要件が変更される可能性があります –

+1

100人のお客様のために、異なるSVNブランチを作成しますか?または別の注釈? – VPK

答えて

2

顧客ごとにSVNで別の支店を持ち、顧客ごとに異なるので、戦争。

あなたは異なるプロファイルの異なる豆と構成を定義することができます。

@Configuration 
@Profile("customer1") 
public class Customer1Configuration { 

    // ... 

} 

@Configuration 
@Profile("customer2") 
public class Customer2Configuration { 

    // ... 

} 

を、プロファイルをアクティブにするには、あなたがapplication.propertiesでそれを指定することができます。

spring.profiles.active=customer1 

あるいはさらに良い - コマンドとして指定します行引数:

--spring.profiles.active=customer1 

春はプロフィールなしの豆しか見つからないこれは、 "customer1"プロファイルでアプリケーションを実行すると、Springは "customer2" bean定義を無視することを意味します。

+0

'@修飾子 'はどうですか? –

+0

どういう意味ですか? –

+0

だから、すべての顧客は他の顧客のコードも入手できますか? –

関連する問題