Spring Bootで@Autowiredがうまくいかずにエラー

サイトを見ながらSpringBootでサンプルを参考に作成してみた際に

ControllerのJavaからServiceクラスを@Autowiredで指定するとエラーとなった。

下記のように適当にパッケージを分けてクラスを配置したことが原因だった。。

  • Controller(Action)
  • Entity
  • Service
  • Repository(Dao)

@Autowiredは同じパッケージ配下しか利用できないらしい。

他のパッケージ配下を指定する場合は@ComponentScan(“com.example.service”)

というようなアノテーションも指定しないといけないらしい。

そもそも標準のパッケージ構成から外れているらしく、

まずは標準のパッケージ構成を作成することからはじめたほうがいいみたい。