私は2つのサービスを持つWebアプリケーション(webapp1)を持っています。各サービスはインターフェースから継承しています。各サービスには、idを持つ@SERVICEの注釈があります。 (service1とservice2)。 は、例えばwervice1のために、私が持っている:Spring Mvc、アノテーションによるbean定義のオーバーライド方法
@SERVICE("service1")
各サービスは@AUTOWIRED
と@QUALIFIER
注釈を使用して、コントローラに注入されます。 今、webapp1にオーバーレイで作成された2番目のWebアプリケーション(webapp2)があります。 webapp2では、私はservice1をオーバーライドしたいです。私はこれをやろう:私は同じid(サービス1とwerviceオーバーライドサービス1)を持つ2つの豆を持っているので、私はエラーを持っている
@PRIMARY
@SERVICE("service1")
。
エラーメッセージがある:org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'service1' for bean class [fr.yyy.oav.xxx.service.YyyService1] conflicts with existing, non-compatible bean definition of same name and class [fr.harvest.oav.xxx.service.XxxService1]
I春クラスにそれを使用するために禁止することに代えて、IDの名前を使用することを可能にするアノテーション@Beanを使用しようとしました。
xml定義を使用せずにservice1をオーバーライドする方法はありますか?
おかげ
完全なエラーメッセージを表示できますか? –
タイプ別にBeanを自動配線(解決)しようとしました。したがって、IDは必要ありません。 – naXa