SpringBootApplicationデフォルトスキャンすべてのクラスと現在のパケットのサブパケットは、同じレベルのコメントSpringBootApplicationユーザと、以下に示すように、ユーザ豆を得ることができません。
pom.xml
<?xml version = "1.0" エンコード= "UTF-8"?> <プロジェクトのxmlns = "http://maven.apache.org/POM/4.0.0"のxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance" のxsi:schemaLocationの = "のhttp:/ /maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd "> <modelVersion> 4.0.0 </ modelVersion> <groupIdを> com.edu.spring </ groupIdを> <たartifactId> springboot </たartifactId> <バージョン> 1.0.0 </バージョン> <パッケージ> JAR </梱包> <名前> springboot </名前> <! - プロジェクトのウェブサイトにFIXME変更それを - > <URL>のhttp:// www.example.com </ URL> <dependencyManagement> <依存性> <依存> <groupIdを> org.springframework.boot </ groupIdを> <たartifactId>春ブート依存関係</たartifactId> <バージョン> 2.1.6.RELEASE </バージョン> <スコープ> インポート </スコープ> <タイプ> POM </タイプ> </依存関係> </依存関係> </ dependencyManagement> <プロパティ> <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding> <maven.compiler.source> 1.8 </maven.compiler.source> <maven.compiler.target> 1.8 </maven.compiler.target> </プロパティ> <依存性> <依存> <groupIdを> org.springframework.boot </ groupIdを> <たartifactId>春・ブート・スターター</たartifactId> </依存関係> </依存関係> </プロジェクト>
User.java
パッケージcom.edu.spring.user。 輸入org.springframework.stereotype.Component; @成分 パブリック クラスユーザー{ }
App.java
パッケージcom.edu.spring.springboot。 輸入org.springframework.boot.SpringApplication。 輸入org.springframework.boot.autoconfigure.SpringBootApplication。 輸入org.springframework.context.ConfigurableApplicationContext; 輸入com.edu.spring.user.User; @SpringBootApplication パブリック クラスのApp { 公共の 静的な 無効メイン(文字列[] args)を { SpringApplicationアプリ = 新しい SpringApplication(APP。クラス); ConfigurableApplicationContextコンテキスト = app.run(引数)。 System.out.println(context.getBean(ユーザー。クラス)); context.close(); } }
ディレクトリ構造:
結果は以下の通りであります:
走査経路はscanBasePackagesで指定することができます
App.java、変更@SpringBootApplication(scanBasePackages = { "com.edu.spring"})
パッケージcom.edu.spring.springboot。 輸入org.springframework.boot.SpringApplication。 輸入org.springframework.boot.autoconfigure.SpringBootApplication。 輸入org.springframework.context.ConfigurableApplicationContext; 輸入com.edu.spring.user.User; @SpringBootApplication(scanBasePackages = { "com.edu.spring" }) パブリック クラスアプリ { 公共の 静的な 無効メイン(文字列[] args)を { SpringApplicationアプリ = 新しい SpringApplication(APP。クラス); ConfigurableApplicationContextコンテキスト = app.run(引数)。 System.out.println(context.getBean(ユーザー。クラス)); context.close(); } }
結果は以下の通りであります:
除外とexcludeNameは除外クラスをスキャンすることができ、次のようにユーザーの豆を得ることはありません。
@SpringBootApplication(scanBasePackages = { "com.edu.spring"}、除外= User.class)
@SpringBootApplication(scanBasePackages = { "com.edu.spring"}、excludeName = "com.edu.spring.user.User")