回答編集履歴

2

質問者様の例について言及を追加

2021/02/13 16:01

投稿

maigo_name
maigo_name

スコア557

test CHANGED
@@ -5,6 +5,18 @@
5
5
  ベースとなるアプリケーションと「同じパッケージ」と「それ以下の階層のパッケージ」をスキャンするため、
6
6
 
7
7
  質問者様の疑問に感じるような挙動が発生しているのだと予想します。
8
+
9
+
10
+
11
+ 質問者様のケースでは、
12
+
13
+ 「demo 配下に Controller を置いた」場合、「Application と同じパッケージ」のため、コンポーネントスキャンが可能でしたが、
14
+
15
+ 「app 配下に Controller を置いた」場合、「Application とは別のパッケージ」のため、コンポーネントスキャンがされていないのだと思います。
16
+
17
+ そのため、設定・実装したルーティングが取り込まれず、表示がうまくできていないものと思われます。
18
+
19
+
8
20
 
9
21
 
10
22
 

1

日本語が読みにくかったのでちょっと修正

2021/02/13 16:01

投稿

maigo_name
maigo_name

スコア557

test CHANGED
@@ -1,12 +1,22 @@
1
- SpringBoot のコンポーネントスキャンはベースとなるアプリケーションと
1
+ SpringBoot のコンポーネントスキャンは
2
2
 
3
+ デフォルトでは
4
+
5
+ ベースとなるアプリケーションと「同じパッケージ」と「それ以下の階層のパッケージ」をスキャンするため、
6
+
3
- パッケージとそれ以下の階層のスキャンすから発生しているのだと予想します。
7
+ 質問者様の疑問に感じるような挙動が発生しているのだと予想します。
4
8
 
5
9
 
6
10
 
11
+ ここでベースのアプリケーションクラスというのは
12
+
7
- ベースのアプリケーションクラスというのは `@SpringBootApplication` のアノテーションのついたクラスのことです。
13
+ `@SpringBootApplication` のアノテーションのついたクラスのことです。
8
14
 
9
15
 
16
+
17
+ 関係性を表すと、
18
+
19
+ スキャンできるクラス、できないクラスの例としては以下のようになります。
10
20
 
11
21
  ```
12
22
 
@@ -24,13 +34,15 @@
24
34
 
25
35
  └ another
26
36
 
27
- └ AnotherController.java (app 別のパッケージなのでスキャンできない)
37
+ └ AnotherController.java (app とは別のパッケージなのでスキャンできない)
28
38
 
29
39
  ```
30
40
 
31
41
 
32
42
 
43
+ デフォルトの場合、と書きましたが、設定次第で並列のパッケージも読み取ることは可能です。
44
+
33
- 並列のパッケージもスキャンしたい場合の例としては、
45
+ 並列のパッケージもスキャンしたい場合の対応の例としては、
34
46
 
35
47
  `@SpringBootApplication` の引数に `scanBasePackages={<引き込みたい親のpackage 名>}`を指定します。
36
48