Citat:
sanchi:2.) koristis factory-method, iskopirah primer sa neta, pa prepravi: <bean id="fallbackBeans" factory-bean="rsacBeanLocator" factory-method="methodName">
Hm, voleo bih da je stvar tako jednostavna :(
Ok, jasna mi je ideja, dakle, moj bean ce ustvari biti kreiran od strane drugog (factory) beana. To lepo zvuci, ali pazi kakvu ja situaciju imam:
Imam klasu koja se zove ThreadConversationWorker. Broj instanci ove klase je N (> 1). Ta klasa ima privatno polje: private Socket client; koje je setovano konstruktorom:
Code:
public ThreadConversationWorker(Socket client, Protocol protocol) {
this.client = client;
this.protocol = protocol;
}
Ono sto je bitno je da je client koji je predat konstruktoru potekao od listener.accept(), kako sam ranije naveo...
U nekom trenutku poziva se sledeci kod u toj instanci:
Code:
Communicator c = new SocketCommunicator(client);
Ja ovde ne zelim da vise zavisim od konkretne implementacije SocketCommunicator. E sad, da je ovaj client kreiran sa new ili da je singleton, znao bih sta cu.
Sad je pitanje kako da ovo sto si predlozila iskoristim da resim problem. Meni nije jasno sledece:
Sta ce u mom slucaju biti factory bean ciju cu metodu da posle koristim kao factory-method?
Ono sto je meni smisleno je da to upravo bude ThreadConversationWorker, jer on cuva client-a, pa bi u tom slucaju pomenuta metoda samo vracala to i kraj price.
Medjutim, problematicno je to sto u tom slucaju factory bean nije singleton, nego ce ih onda biti koliko ima i ThreadConversationWorker-a i sad dolazimo do krucijalnog pitanja: kako ja da uparim da se poziva bas factory-method PRAVE instance factory-beana???