私は春/春のブートに全く新しいので、私はいくつかの助けが必要です。@SpringBootApplicationを動かすと、なぜSpring Autowireが失敗しますか?
の作業フォルダ構造
を働いていない:私は@SpringBootApplication
または@ComponentScan
が特定の場所になければならなかったことが示された任意のドキュメントを気付きませんでした
私は春/春のブートに全く新しいので、私はいくつかの助けが必要です。@SpringBootApplicationを動かすと、なぜSpring Autowireが失敗しますか?
の作業フォルダ構造
を働いていない:私は@SpringBootApplication
または@ComponentScan
が特定の場所になければならなかったことが示された任意のドキュメントを気付きませんでした
私はあなたのApplication
クラスには、次のような典型的な春のブートアプリケーションであると仮定します。明示的な基本パッケージとComponentScan
は、使用することを
// Others
@Configuration
@EnableAutoConfiguration
@ComponentScan
public @interface SpringBootApplication { .. }
:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
SpringBootApplication
はちょうど合成注釈ですスキャンの基本パッケージとしてApplication
クラスのパッケージしたがって、このクラスをルートパッケージに入れると、ルートパッケージ内の注釈付きクラスとその下にあるコンポーネントスキャナによってスキャンされ、アプリケーションが正常に動作します。
Application
をapp
パッケージに移動すると、全く同じコンポーネントスキャナがhello
パッケージ内のこれらのBeanをスキャンせず、SpringがいくつかのBeanを結線できません。春ブーツが動作するために、任意の特定のコードのレイアウトを必要としない
、しかし、助けるいくつかのベストプラクティスがあります。それらのベストプラクティスについては、Spring Boot Documentationで読むことができます。
ありがとう!はい、私は@SpringBootApplicationを使用していました。私はそれが他の注釈のショートカットであることは知らなかったが、それは理にかなっている。ありがとう! – Juc
あなたはスキャンベースパッケージを指定しない場合には、注釈付きのアプリケーションクラスを含むパッケージからスキャンを開始します。 – cjstehno