春 - > [インポートの使用@

春・コンテキストの注釈パケットによって@import

パッケージorg.springframework.context.annotation。

輸入java.lang.annotation.Documented;
輸入java.lang.annotation.ElementType。
輸入java.lang.annotation.Retention。
輸入java.lang.annotation.RetentionPolicy。
輸入java.lang.annotation.Target; 

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented 
パブリック @のインタフェースインポート{ 
    クラス <?> []の値(); 
}

アノテーションは主にクラス構成(コンフィギュレーション)をインポートするために使用され、通常、我々はすべての@SpringBootApplicationスキャン可能な範囲内で、プロファイルを作成し、この構成のビジネスでその時間を使用し、直接注入は、通常@Autowired使用することができます。

上に示したように、我々はオーダーの直接注入を使用する場合、それは、問題ではありません設定OrderConfigクラス以来、開始のメインクラスデフォルトのスキャン範囲を。

@SpringBootApplicationのデフォルトのスキャン範囲、プログラムは現在のクラスのスキャンを開始すると、プライマリパッケージ、パッケージおよびすべてのサブパケットの現在のです。あなたは、親のパッケージ構成、パッケージパススキャンの注釈を示すために、起動クラス@ComponentScan(「COM。**」)を使用する必要性をスキャンする必要がある場合。

 

次のようにクラスは、パケットタイプ、および次のサブパケットメインパス構成にない場合。

 UserConfigにに直接注入この場合、プログラムは起動時にエラーになります

com.example.security.securitydemo.SecurityDemoApplicationでのフィールドのユーザーがタイプ「com.example.security.securitydemo.bean.User」の豆必要見つかりませんでした。

注入点は、次の注釈があります:
     - org.springframework.beans.factory.annotation.Autowired @(=必要な

ソリューション

  1. 起動クラスプラスに  @ComponentScan(「COM。**」)のノート、直接取得
  2. 使用@import(UserConfig.classは)の導入を指摘します

シンプルかつ粗製の方法は、直接問題に対処する、しかし、この解決策は、それだけであなたはそれがパッケージ名は、恥ずかしいであれば、COM、組織で始まる、クラスのパッケージ名を知っている合って、これに基づいて、それがあります@importを拡張します。

<インポート/>タグ、2でない差を使用して、元のバネXMLに相当@import。

 

おすすめ

転載: www.cnblogs.com/idoljames/p/11420029.html
おすすめ