単に豆に@Primaryアノテーションを追加した場合Springコンテナは、複数のビーンのインタフェースに走査されるときに、入れ、次に豆は、次の例のように、好ましいであろう。
@Component パブリック クラスFooService { プライベートFooRepository fooRepository。 @Autowired 公共FooService(FooRepository fooRepository){ この .fooRepository = fooRepository。 } } @Component パブリック クラス JdbcFooRepositoryは延びFooRepository { 公共JdbcFooRepository(データソースデータソース){ // ... } } @Primary @Component パブリック クラス HibernateFooRepositoryが延びFooRepository { 公共HibernateFooRepository(のSessionFactoryのSessionFactory){ // ... } }
上記@Primary HibernateFooRepositoryを注釈付き、それがFooServiceにおける優先JdbcFooRepositoryに注入されるからです。アプリケーションコンポーネントの多くは、スキャン時にこれが頻繁に発生します。