プロジェクトAを実行しようとするとプロジェクトBとプロジェクトBがプロジェクトAのjarファイルとして追加されているとします。これは、 ""という名前のBean名 "xyz"同じ名前とクラスの非互換Bean定義 "mavenプロジェクトで同じ名前の2つのBeanの競合を解決するにはどうすればよいですか?
誰もがこれをプロジェクトBのBean" xyz "を無視し、プロジェクトAの" xyz "Beanのみを実行するか、注釈などがあるそれ?
プロジェクトAを実行しようとするとプロジェクトBとプロジェクトBがプロジェクトAのjarファイルとして追加されているとします。これは、 ""という名前のBean名 "xyz"同じ名前とクラスの非互換Bean定義 "mavenプロジェクトで同じ名前の2つのBeanの競合を解決するにはどうすればよいですか?
誰もがこれをプロジェクトBのBean" xyz "を無視し、プロジェクトAの" xyz "Beanのみを実行するか、注釈などがあるそれ?
これを実現するには、修飾子アノテーションを使用できます。
@Qualifier("ProjectA")
or
@Qualifier("complete.package.ProjectA")
私は与えたansとursの間の違いは何か知っているかもしれません –
あなたはenter link description here
編集ポンポンファイルをBからクラスファイルを除外するために使用したシェードプラグインを梱包しながら、クラスファイルを除外するためにBのためのPOMファイルを編集することができ、enter link description here
@Primaryアノテーションを使用コンフィグレーションクラスのbean defenitionについて
@Bean(name = "beanOnA")
@Primary
public YourInterface yourBeanOnProjectA(){
return new YourClass("Bean on Project A");
}
BeanをautowiringするときにBe修飾子注釈を使用する名前。
@Autowired
@Qualifier("beanOnA")
YourInterface yourInterface;
このような状況は、コード臭のようなものです。おそらく、リファクタリングを検討する必要がありますか? –
プロジェクトBのbean "xyz"に@Lazyを使用する方法がありますか? –
@NielsBechNielsen実際に私はプロジェクトAとBの両方に同じJersey設定ファイル、つまりデフォルトの作成クラスが含まれるように、jersey archetypeのmavenプロジェクトを作成しました。それが理由です。今、私は働くことができる何かを提案することができますか? – Manish