4

DataSourceと呼ばれるサービス インターフェイスと、XMLDataSourceDataBaseDataSourceなどの複数の実装があります。

ユーザーが XML をクリックした場合など、いくつかのユーザー操作に基づいて、適切な実装を Struts2 アクションに注入 (Spring) したいので、XML 実装を使用する必要があります。Spring は DI フレームワークに使用されています。

@Autowired
private DataSource dataSource;

これを達成するための最良の方法を提案してください。

4

4 に答える 4

19

ユーザーの操作に基づいて実行時に実装を選択する必要がある場合は、DataSourceインターフェイスの可能なすべての実装を自動配線する必要があります。

目的のインターフェースをオートワイヤーするListと、Spring は各実装のインスタンスを自動的にリストに取り込みます。

@Autowired
private List<DataSource> dataSources;

ユーザーの操作に基づいて適切なインターフェイスを選択するのはあなた次第です。

Bean 名に基づいて区別する必要がある場合は、Bean 名でインデックス付けされた DataSource オブジェクトのディクショナリをオートワイヤーすることも選択できます。

@Autowired
private Map<String, DataSource> dataSourceIndex;

これは、Spring の 2.5 バージョンから利用できます。自動配線のドキュメントはここにあります。

于 2013-09-26T11:43:57.580 に答える
3

最も簡単なアプローチは、考えられるすべての実装を注入し、ユーザーがオプションをクリックしたときに使用する実装を選択することです。

于 2013-09-26T11:28:42.247 に答える