campos de feijão singleton de primavera não são preenchidos
Eu preciso de um serviço (singleton se encaixa) com alguns campos internos, como uma lista de tópicos pendentes (sim tudo é escrito para ser thread-safe) o problema é que se eu@autowire
Nesse bean, os campos parecem estar vazios. Depurando, vejo que o proxy se liga corretamente à instância (camposCGLIB$CALLBACK_X
estão corretamente vinculados ao bean populado) com campos preenchidos, mas os campos que ele oferece estão vazios.
As seguintes linhas de códigos dão uma ideia geral do que estou falando.
@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);
}
}
Depurando a Variávelmonitor
durante a chamada getList eu recebo
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)