teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

タイトルを修正

2019/03/01 02:51

投稿

4321bocya
4321bocya

スコア13

title CHANGED
@@ -1,1 +1,1 @@
1
- Spring Bootのマルチプロジェクトで別モュールにある依存クラスを@Autowiredでき
1
+ Spring Bootのマルチプロジェクトで@ComponentScanにより参照先プロェクトにある依存クラスを@Autowiredしようとすると 参照元クラスのbeanも生成されくなる
body CHANGED
File without changes

4

内容を修正

2019/03/01 02:51

投稿

4321bocya
4321bocya

スコア13

title CHANGED
@@ -1,1 +1,1 @@
1
- Spring Bootのマルチプロジェクトで別モジュールにある依存クラスを@AutowiredするとAPI呼び出しが404と
1
+ Spring Bootのマルチプロジェクトで別モジュールにある依存クラスを@Autowiredでき
body CHANGED
@@ -1,12 +1,14 @@
1
1
  ※初めて質問します。よろしくお願いいたします。
2
+
2
3
  ### 実現したいこと
3
4
 
4
5
  現在、Spring Bootのマルチプロジェクトを作成しており、参照元のプロジェクトの中で
5
6
  参照先の別モジュールにある依存クラスを@Autowiredしたいです。
6
7
 
7
8
  ### 現在、発生している問題(概要)
8
- @ComponentScanにより別モュールにある依存クラスを@Autowiredしようとした際に
9
+ @ComponentScanにより参照先プロェクトにある依存クラスを@Autowiredしようとした際に
9
- 既存のコントローーへAPI呼び出しが404と
10
+ 参照元クbeanも生成されくなります
11
+ 具体的には@RestControllerアノテーションをつけたContorollerです。
10
12
 
11
13
  ### 前提
12
14
  フォルダ構成は以下のパッケージエクスプローラーの通りです。
@@ -14,30 +16,18 @@
14
16
  ![イメージ説明](cca3a400d1ada28d94d2233f445180a6.png)
15
17
 
16
18
 
17
- そして、sample-appに以下のようなコントローラーを作成しており、参照設定をしていない状態であればlocalhost:8080/sample/api/testへのアクセスは成功します。(Hello Worldが返ってくる)
18
19
 
19
- ```java
20
- package spring.demo.controller;
21
- @RestController
22
- public class ItemController {
23
- @GetMapping("/sample/api/test")
24
- public String test() {
25
- return "Hello World";
26
- }
27
- }
28
- ```
29
20
  ### 現在、発生している問題(詳細)
30
21
 
31
22
  sample-app/build.gradleにcommon-businessへの参照設定を追記してマルチプロジェクトとし、
32
- web-appにてcommon-businessのItemServiceを@Autowiredする
23
+ sample-appのmainクラスにて@ComponentScanを付与したころsample-appのBean自体が生成されなくなりました。
33
- localhost:8080/sample/api/testへのアクセスが404となってしまいます。
24
+ 具体的には以下のControllerで@ComponentScanをはずすとBeanがうまく生成され、localhost:8080/sample/api/testへのアクセスも成功します。
34
25
 
35
26
  ```java
36
27
  package spring.demo.controller;
37
28
  import spring.common.demo.ItemService;
38
29
  @RestController
39
30
  public class ItemController {
40
- //追記部分
41
31
  @Autowired
42
32
  ItemService itemService;
43
33
 
@@ -56,17 +46,6 @@
56
46
  お手数をおかけしますが、原因部分とその対応策のご教示をお願い致します。
57
47
 
58
48
 
59
- ### 発生している問題・エラーメッセージ
60
- common-businessへの参照をした後に再度localhost:8080/sample/api/testへのアクセスした際の標準出力は以下の通りです。
61
- 特にエラーは出ていません。
62
-
63
- ```
64
- 2019-03-01 00:13:34.844 INFO 8432 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
65
- 2019-03-01 00:13:34.845 INFO 8432 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
66
- 2019-03-01 00:13:34.862 INFO 8432 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 16 ms
67
-
68
- ```
69
-
70
49
  ### 該当のソースコード
71
50
 
72
51
  sample-appのbuild.gradle及びsetting.gradleは以下の通りです。

3

内容の修正

2019/03/01 02:50

投稿

4321bocya
4321bocya

スコア13

title CHANGED
File without changes
body CHANGED
@@ -57,7 +57,8 @@
57
57
 
58
58
 
59
59
  ### 発生している問題・エラーメッセージ
60
- localhost:8080/sample/api/testへのアクセスした際の標準出力は以下の通りです。
60
+ common-businessへの参照をした後に再度localhost:8080/sample/api/testへのアクセスした際の標準出力は以下の通りです。
61
+ 特にエラーは出ていません。
61
62
 
62
63
  ```
63
64
  2019-03-01 00:13:34.844 INFO 8432 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
@@ -69,6 +70,7 @@
69
70
  ### 該当のソースコード
70
71
 
71
72
  sample-appのbuild.gradle及びsetting.gradleは以下の通りです。
73
+ /sample-app/build.gradle
72
74
 
73
75
  ```gradle
74
76
  buildscript {
@@ -115,14 +117,40 @@
115
117
 
116
118
  ```
117
119
 
120
+ /sample-app/setting.gradle
118
- build.gradle
121
+ ```gradle
119
- ```
120
122
 
121
123
  rootProject.name = 'sample-app'
122
124
 
123
125
  include ':common-business'
124
126
  project(':common-business').projectDir = new File('../common-business')
125
127
  ```
128
+
129
+ /common-business/build.gradle
130
+ ```gradle
131
+
132
+ plugins {
133
+ id 'java'
134
+ }
135
+
136
+ repositories {
137
+ mavenCentral()
138
+ }
139
+
140
+ dependencies {
141
+ implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
142
+ implementation 'org.springframework.boot:spring-boot-starter-jdbc'
143
+ implementation 'org.springframework.boot:spring-boot-starter-web'
144
+ compileOnly 'org.projectlombok:lombok'
145
+ runtimeOnly 'org.postgresql:postgresql'
146
+ testImplementation 'org.springframework.boot:spring-boot-starter-test'
147
+
148
+ // Use JUnit test framework
149
+ testImplementation 'junit:junit:4.12'
150
+ }
151
+
152
+ ```
153
+
126
154
  # 試したこと
127
155
  別モジュールにある依存クラスを@Autowiredするために@ComponentScan("common-business")としています。
128
156
 

2

タイトルを修正

2019/02/28 23:17

投稿

4321bocya
4321bocya

スコア13

title CHANGED
@@ -1,1 +1,1 @@
1
- Spring BootにAPI呼び出しをした際に404となる
1
+ Spring Bootのマルチプロジェクトで別モジュールある依存クラスを@AutowiredするとAPI呼び出し404となる
body CHANGED
File without changes

1

Spring Bootのバージョンの記載を修正

2019/02/28 15:56

投稿

4321bocya
4321bocya

スコア13

title CHANGED
File without changes
body CHANGED
@@ -127,5 +127,5 @@
127
127
  別モジュールにある依存クラスを@Autowiredするために@ComponentScan("common-business")としています。
128
128
 
129
129
  ### 補足情報(FW/ツールのバージョンなど)
130
- Spring Boot 2.1.0
130
+ Spring Boot 2.1.3
131
131
  Gradle 4.10.2