質問編集履歴

3

解決策?を追加

2017/02/17 08:03

投稿

msss
msss

スコア33

test CHANGED
File without changes
test CHANGED
@@ -77,3 +77,89 @@
77
77
  }
78
78
 
79
79
  ```
80
+
81
+
82
+
83
+ ## 追加(解決策?)
84
+
85
+
86
+
87
+ - new()した方が良いような気もしますがコンテナに登録されたオブジェクトにコンストラクタに引数が渡せました。
88
+
89
+
90
+
91
+ ```java
92
+
93
+ @Controller
94
+
95
+ public class HogeController {
96
+
97
+ void test(){
98
+
99
+ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Test.class);
100
+
101
+ TestDI hogeA = (TestDI) context.getBean("getHogeInstance", 1, "@@@");
102
+
103
+ TestDI hogeB = (TestDI) context.getBean("getHogeInstance", 2, "◆◆");
104
+
105
+
106
+
107
+ hogeA.print();
108
+
109
+ hogeB.print();
110
+
111
+ }
112
+
113
+ }
114
+
115
+
116
+
117
+ @Service
118
+
119
+ public class Test {
120
+
121
+ @Bean
122
+
123
+ @Scope("prototype")
124
+
125
+ HogeService getHogeInstance(int i, String s) {
126
+
127
+ return new HogeService (i, s);
128
+
129
+ }
130
+
131
+ }
132
+
133
+
134
+
135
+ public class HogeService {
136
+
137
+ final int a;
138
+
139
+ final String b;
140
+
141
+
142
+
143
+ HogeService (int a, Sting b){
144
+
145
+ this.a = a;
146
+
147
+ this.b = b;
148
+
149
+ }
150
+
151
+
152
+
153
+ public void print(){
154
+
155
+ System.out.println(i);
156
+
157
+ System.out.println(s);
158
+
159
+ }
160
+
161
+ }
162
+
163
+
164
+
165
+ ```

2

print\(\)追加

2017/02/17 08:03

投稿

msss
msss

スコア33

test CHANGED
File without changes
test CHANGED
@@ -34,11 +34,11 @@
34
34
 
35
35
  // 本当は以下のようなことがしたいのですが、どのようにすれば良いのでしょうか。
36
36
 
37
- HogeService service = new HogeService(i, s);
37
+ HogeService service = new HogeService(i, s);
38
38
 
39
39
 
40
40
 
41
-
41
+ service.print();
42
42
 
43
43
  }
44
44
 
@@ -50,7 +50,27 @@
50
50
 
51
51
  public class HogeService {
52
52
 
53
+ final int a;
54
+
55
+ final String b;
56
+
57
+
58
+
53
59
  HogeService (int a, Sting b){
60
+
61
+ this.a = a;
62
+
63
+ this.b = b;
64
+
65
+ }
66
+
67
+
68
+
69
+ public void print(){
70
+
71
+ System.out.println(i);
72
+
73
+ System.out.println(s);
54
74
 
55
75
  }
56
76
 

1

a

2017/02/17 04:50

投稿

msss
msss

スコア33

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- コンストラクタに引数が必要なクラスをDIする場合
1
+ コンストラクタに引数(処理中に値決定する)が必要なクラスをDIする場合
2
2
 
3
3
  どのように実装したらよいのでしょうか。
4
4