質問編集履歴
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,29 +2,23 @@
|
|
2
2
|
|
3
3
|
Spring Boot を使用したCRUD機能を持ったWebアプリを制作しています。
|
4
4
|
現在は会員登録機能を実装している段階です。
|
5
|
-
MyBatisで会員登録部分を作成したので、DIコンテナから
|
6
|
-
Beanを
|
5
|
+
DIコンテナからMapper.java のBeanを変数に注入しようとしましたら以下のエラーが
|
6
|
+
表示されました。
|
7
7
|
|
8
|
-
【追記】
|
9
|
-
|
8
|
+
Field user in com.example.demo.controller.RegisterController required a bean of type 'com.example.demo.repository_interface.UserMapper' that could not be found.
|
10
9
|
|
10
|
+
他の質問でエラー解消の方法を尋ねた際に、@Import アノテーションをMapperクラスに
|
11
|
+
付けるようにとご指摘を頂きましたので試してみたところエラーは消えましたが
|
12
|
+
別の例外が出力されてしまいました。
|
13
|
+
半日試行錯誤しましたが解決する事は出来ませんでした。
|
14
|
+
解決方法をご教示頂きたいです。宜しくお願い致します。
|
15
|
+
|
11
16
|
### 発生している問題・エラーメッセージ
|
12
|
-
DIコンテナからBeanを取得する事が出来ません。
|
17
|
+
DIコンテナからBeanを取得する事が出来ません。原因はUserMapper.javaをDIコンテナにBeanとして格納する事が出来ていないからだと考えています。根本的な原因はUserMapper.javaとUserMapper.xmlが何かしらの原因で関連付けされていない或いは機能していないからではないかと考えています。
|
13
18
|
|
14
|
-
【追記】
|
15
|
-
DIコンテナに Bean を追加する事が出来ないので、依存性の注入をする事が出来ません。
|
16
|
-
根本的な原因はUserMapperインターフェイスをインスタンス化する事が出来ていない
|
17
|
-
のに行おうとしているからだと考えています。そこで、
|
18
|
-
実装クラスをインスタンス化する処理に書き換えたいのですが
|
19
|
-
どこをどのように変えればよいのか見当がついていません。
|
20
|
-
初学者なので、そもそも考え方として正しいのかも自身がありません。
|
21
|
-
どなたかご教示願えないでしょうか。
|
22
19
|
```
|
23
20
|
エラーメッセージ
|
24
|
-
Field user in com.example.demo.controller.RegisterController required a bean of type 'com.example.demo.repository_interface.UserMapper' that could not be found.
|
25
21
|
|
26
|
-
【追記】
|
27
|
-
|
28
22
|
org.springframework.beans.factory.UnsatisfiedDependencyException:
|
29
23
|
Error creating bean with name 'registerController':
|
30
24
|
Unsatisfied dependency expressed through field 'user';
|
@@ -149,7 +143,7 @@
|
|
149
143
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
150
144
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
151
145
|
<mapper namespace="com.example.demo.repository_interface.UserMapper">
|
152
|
-
<insert id="Register">
|
146
|
+
<insert id="Register" parameterType="User">
|
153
147
|
insert into user(
|
154
148
|
name
|
155
149
|
,password
|
@@ -198,14 +192,17 @@
|
|
198
192
|
```
|
199
193
|
### 試したこと
|
200
194
|
|
201
|
-
・DIコンテナに登録されていない可能性を疑い、
|
202
|
-
|
195
|
+
・Mybatisに必要なライブラリが欠けている可能性を疑いました。
|
203
|
-
|
196
|
+
・pom.xml にmybatis-spring-boot-starter が存在するか確認しました。
|
204
197
|
|
205
|
-
・コン
|
198
|
+
・DIコンテナにMapperが登録されていない可能性を疑いました。
|
199
|
+
・Mapper.javaに@Mapperがついているかどうかを確認しました。
|
206
|
-
|
200
|
+
・Mapper.xmlのnamespace属性やID属性の情報が間違っていないかを確認しました。
|
207
|
-
と追記しました。
|
208
201
|
|
209
|
-
|
202
|
+
・コンポーネントスキャンの対象になっていない可能性を疑いました。
|
203
|
+
・Application.javaに@SpringBootApplication(scanBasePackages={"com.example.demo"})を追記しました。
|
210
204
|
|
205
|
+
ファイル構成は以下の通りです。
|
211
|
-
]
|
206
|
+
]
|
207
|
+
|
208
|
+
ご指導をお願い致します。
|
1
文法の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,11 +5,47 @@
|
|
5
5
|
MyBatisで会員登録部分を作成したので、DIコンテナから
|
6
6
|
Beanを取り出そうとしたら以下の様なエラーが出てしまいました。
|
7
7
|
|
8
|
+
【追記】
|
9
|
+
@import で該当クラスを囲んだ所別の例外が出力されてしまいました。
|
10
|
+
|
8
11
|
### 発生している問題・エラーメッセージ
|
9
|
-
DIコンテナからBeanを取得する事が出来
|
12
|
+
DIコンテナからBeanを取得する事が出来ません。
|
13
|
+
|
14
|
+
【追記】
|
15
|
+
DIコンテナに Bean を追加する事が出来ないので、依存性の注入をする事が出来ません。
|
16
|
+
根本的な原因はUserMapperインターフェイスをインスタンス化する事が出来ていない
|
17
|
+
のに行おうとしているからだと考えています。そこで、
|
18
|
+
実装クラスをインスタンス化する処理に書き換えたいのですが
|
19
|
+
どこをどのように変えればよいのか見当がついていません。
|
20
|
+
初学者なので、そもそも考え方として正しいのかも自身がありません。
|
21
|
+
どなたかご教示願えないでしょうか。
|
10
22
|
```
|
11
23
|
エラーメッセージ
|
12
24
|
Field user in com.example.demo.controller.RegisterController required a bean of type 'com.example.demo.repository_interface.UserMapper' that could not be found.
|
25
|
+
|
26
|
+
【追記】
|
27
|
+
|
28
|
+
org.springframework.beans.factory.UnsatisfiedDependencyException:
|
29
|
+
Error creating bean with name 'registerController':
|
30
|
+
Unsatisfied dependency expressed through field 'user';
|
31
|
+
|
32
|
+
nested exception is
|
33
|
+
org.springframework.beans.factory.BeanCreationException:
|
34
|
+
Error creating bean with name 'com.example.demo.repository_interface.UserMapper': Instantiation of bean failed;
|
35
|
+
|
36
|
+
nested exception is
|
37
|
+
org.springframework.beans.BeanInstantiationException:
|
38
|
+
Failed to instantiate [com.example.demo.repository_interface.UserMapper]:
|
39
|
+
Specified class is an interface
|
40
|
+
以下略
|
41
|
+
|
42
|
+
Caused by: org.springframework.beans.factory.BeanCreationException:
|
43
|
+
Error creating bean with name 'com.example.demo.repository_interface.UserMapper': Instantiation of bean failed;
|
44
|
+
nested exception is org.springframework.beans.BeanInstantiationException:
|
45
|
+
Failed to instantiate [com.example.demo.repository_interface.UserMapper]:
|
46
|
+
Specified class is an interface
|
47
|
+
下略
|
48
|
+
|
13
49
|
```
|
14
50
|
### 該当のソースコード
|
15
51
|
【pom.xml】
|