共通のインターフェースを実装するサービスがいくつかありますが、アプリケーションの起動時にそれらの1つを選択して、他のサービスに注入できるようにしたいと考えています。
以下に示すように、resources.groovyからサービス実装を参照しようとしましたが、Springは選択されたサービスの新しいインスタンスを作成し、その依存関係を自動配線しません。
このソリューションを機能させるにはどうすればよいですか?または別の方法はありますか?
class MyService {
Repository repository
interface Repository {
void save(...)
}
}
class MySqlRepositoryService implements MyService.Repository { ... }
class FileRepositoryService implements MyService.Repository { ... }
resources.groovy:
beans = {
...
repository(FileRepositoryService) { }
}