Я новичок в Spring DI и впервые использую DI в своем веб-приложении.
кажется, что я делаю что-то не так, и это связано с тем, как я использую Spring scope. Вот моя проблема
у меня есть серьезный класс, где я вводю различные другие объекты для достижения желаемой функциональности
вот мои весенние записи в файле
<bean id="ImportServiceImpl" class="ImportServiceImpl" factory-method="getInstance">
<property name="browseDirectory" ref="browseDirectoryImpl"/>
<property name="xmlUnmarshaller" ref="xmlUnmarshallerImpl"/>
<property name="Adaptar" ref="AdaptarImpl"/>
<property name="DAOService" ref="DAO"/>
</bean>
<bean id="browseDirectoryImpl" class="BrowseDirectoryImpl" factory-method="getInstance" />
<bean id="xmlUnmarshallerImpl" class="XMLUnmarshallerImpl"/>
<bean id="AdaptarImpl" class="AdaptarImpl" factory-method="getInstance"/>
теперь в моем классе adaptarImpl есть ссылка на какой-то другой объект, который инициализируется в конструкторе
private AdaptarImpl(){
foo=new Foo();
}
теперь в первый раз, когда сервер запускается и эта служба запускается впервые, все в порядке, foo инициализируется до правильного значения инициализации, но для всех других последующих вызовов Spring возвращает ссылку на предыдущий инициализированный объект foo, где я хочу для каждого нового запроса должен быть создан новый экземпляр foo.
мне кажется, что фабричный метод используется в приведенном выше коде factory-method="getInstance"
вызывается только один раз, когда вызывается сервер, и все последующие вызовы возвращают ту же ссылку, где я хочу новый экземпляр для каждого запроса.
вот мой метод лицемерия
public static ImportServiceImpl getInstance(){
return new ImportServiceImpl();
}
я знаю, что делаю основы неправильно в DI, но не уверен, где он находится. Я использую Struts2 для MVC и для сервисного уровня, используя Spring DI
любая помощь в этом отношении будет полезна
Спасибо
Umesh