Весенние поля синглтон не заселены
Мне нужен сервис (синглтон подходит) с некоторыми внутренними полями, такими как список ожидающих потоков (да, все написано, чтобы быть потокобезопасными), проблема в том, что если я@autowire
этот бин, поля кажутся пустыми. Отладка Я вижу, что прокси правильно связывается с экземпляром (поляCGLIB$CALLBACK_X
правильно связаны с заполненным компонентом) с заполненными полями, но предлагаемые им поля пусты.
Следующие строки кодов дают общее представление о том, о чем я говорю.
@Service
public class myService{
@Autowired
private Monitor monitor;
public List getSomething(){
return monitor.getList();
}
}
@Service
public class myStatefulService{
//This field will be populated for sure by someone before getSomething() is called
private List list;
public synchronized List getSomething(){
return this.list;
}
//Called by other services that self inject this bean
public synchronized void addToList(Object o){
this.list.add(o);
}
}
Отладка переменнойmonitor
во время вызова getList я получаю
monitor => instance of correct class
fields:
CGLIB$BOUND => true
CGLIB$CALLBACK_0.advised => proxyFactory (correct)
CGLIB$CALLBACK_1.target (reference to the correct instance of myStatefulService class)
fields:
list => [.........] (correctly populated)
CGLIB$CALLBACK_2 .....
......
......
......
list => [] (the list that would be populated is empty instead)