Reasonable Code

ほどよいコードを書きたい

Spring Framework

Spring BootでConflictingBeanDefinitionExceptionが起きたときの対処法

投稿日:

Spring Bootでアプリケーション起動時に以下のようなConflictingBeanDefinitionExceptionが起きたときの対処法をメモしておきます。

原因

コンポーネントスキャン対象のパッケージ配下に同じBean名のクラスが複数存在しているからです。同じBean名だと、SpringはどのBeanをコンポーネントスキャンすればいいか判断できないからですね。

具体的には、以下のようにパッケージは異なるものの、Bean名(DemoComponent)が同じものをコンポーネントスキャンするときにConflictingBeanDefinitionExceptionが発生します。

対処法

Beanが被らないようにBean名を変更しましょう。以下の記事で紹介されているように、同じBeanでもエラーが起きないようにする方法はありますが、個人的にはSpringの標準の動きに合わせるべきだと思うので、Bean名を変更するのがいいと思います。

まとめ

Spring Bootでアプリケーション起動時にConflictingBeanDefinitionExceptionが起きたときの対処法でした。

参考リンク

【RC】記事下記事内広告


-Spring Framework

Copyright© Reasonable Code , 2019 All Rights Reserved Powered by STINGER. App icon by icons8. Privacy Policy.