2016-05-02 10 views
0

私は春/春のブートに全く新しいので、私はいくつかの助けが必要です。@SpringBootApplicationを動かすと、なぜSpring Autowireが失敗しますか?

の作業フォルダ構造

を働いていない

Working folder structure

Working folder structure 2

:私は@SpringBootApplicationまたは@ComponentScanが特定の場所になければならなかったことが示された任意のドキュメントを気付きませんでした

Not working folder structure

+2

あなたはスキャンベースパッケージを指定しない場合には、注釈付きのアプリケーションクラスを含むパッケージからスキャンを開始します。 – cjstehno

答えて

2

私はあなたの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クラスのパッケージしたがって、このクラスをルートパッケージに入れると、ルートパッケージ内の注釈付きクラスとその下にあるコンポーネントスキャナによってスキャンされ、アプリケーションが正常に動作します。

Applicationappパッケージに移動すると、全く同じコンポーネントスキャナがhelloパッケージ内のこれらのBeanをスキャンせず、SpringがいくつかのBeanを結線できません。春ブーツが動作するために、任意の特定のコードのレイアウトを必要としない

、しかし、助けるいくつかのベストプラクティスがあります。それらのベストプラクティスについては、Spring Boot Documentationで読むことができます。

+1

ありがとう!はい、私は@SpringBootApplicationを使用していました。私はそれが他の注釈のショートカットであることは知らなかったが、それは理にかなっている。ありがとう! – Juc

関連する問題