que tiene un conjunto unitario que tiene un resorte inyectada Dao (simplificado abajo):inyección de dependencia en su Singleton
public class MyService<T> implements Service<T> {
private final Map<String, T> objects;
private static MyService instance;
MyDao myDao;
public void set MyDao(MyDao myDao) {
this. myDao = myDao;
}
private MyService() {
this.objects = Collections.synchronizedMap(new HashMap<String, T>());
// start a background thread that runs for ever
}
public static synchronized MyService getInstance() {
if(instance == null) {
instance = new MyService();
}
return instance;
}
public void doSomething() {
myDao.persist(objects);
}
}
Mi config primavera, probablemente se verá así:
<bean id="service" class="MyService" factory-method="getInstance"/>
Pero esto va a crear una instancia MyService durante el inicio.
¿Hay una forma programática de hacer una inyección de dependencia de MyDao en MyService, pero no tener la primavera para administrar el MyService?
Básicamente quiero ser capaz de hacer esto desde mi código:
MyService.getInstance().doSomething();
al tiempo que la primavera inyectar el MyDao para mí.
¿Y tienes que obtener el bean usando ApplicationContext donde lo necesites? – Langali
Me gustaría * normalmente * obtener mi frijol de nivel superior en la inicialización y luego hacer referencia a otros frijoles según sea necesario de ese grano de nivel superior. Pero podrías hacer lo que estás sugiriendo. –