今天我在我的config中autowired几支class进来
像是这样
@Autowired
private A a;
@Autowired
private B b;
然后再set某些值进去
public A aSet(){
a.id = 'hello';
return a;
}
public B bSet(){
b.id = 'world';
return b;
}
}
然后run server时候会报错
于是我改成以下这样
@Autowired
private A a;
private A a;
@Autowired
@qulifier("aSet")
private A aSet;
@Autowired
private B b;
@Autowired
@qulifier("bSet")
private B bSet;
然后再set某些值进去
@bean
public A aSet(){
public A aSet(){
a.id = 'hello';
return a;
}
@bean
public B aSet(){
b.id = 'world';
return b;
}
然后再丢到Map里头例如
public Map<String,Test> test(){
public Map<String,Test> test(){
Map<String,Test> mapTest = new ArrayList<String,Test>();
mapTest.put('1',aSet);
mapTest.put('2',bSet);
return mapTest;
}
虽然run server可以过不会报错
但是我map中的a和b是空值,没有被set到hello和world;
后来我就印log发现a根本是null b也是null 根本没拿内存位置
后来我就印log发现a根本是null b也是null 根本没拿内存位置
请问是不能这样set值吗
还是我autowired错了
这问题搞了我好久 网络上也有去找答案 但好像没人用过这种写法 所以都找不到问题点
烦请各位高手指点
补充完整的程式码
@Configure
public class someConfig {
@Autowired
private A a;
@Autowired
@qulifier("aSet")
private A aSet;
@Autowired
@Autowired
private B b;
@Autowired
@qulifier("bSet")
private B bSet;
@Bean
public Map<String,ITest> test(){
Map<String,Test> mapTest = new ArrayList<String,Test>();
mapTest.put('1',a);
System.out.println(a) <