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