1

複数の相互に排他的なデータ ソースがあり、構成ファイルで定義されたプロパティに基づいて、どの実装をコントローラーに挿入/自動配線するかを構成したいと考えています。

私は @Qualifier に沿って何かを考えていますが、私は春の専門家ではないので、仕組みを理解できません。

その目的は、結果として生じる複雑な if/else を回避することです。

何か案は?

4

1 に答える 1

1

context:property-placeholderとでトリックを実行できます@Qualifier

次のようになります。

app.properties

some.implementation=com.example.MyServiceImpl

春のコンテキストファイル

<context:property-placeholder
        location="classpath:/app.properties"/>

<bean id="myService" class="${some.implementation}" />

コントローラ

@Autowired
@Qualifier("myService")
private MyService myService;

反対の解決策として、プロパティ ファイルの Bean ID に保存し、それを内部で使用できます。@Qualifier

@Qualifier("${some.implementation.bean.id}")

ただし、Spring 3.1+ を使用している場合は、おそらくプロファイルメカニズムを確認する必要があります。

于 2013-04-17T09:14:16.853 に答える