Метод Spring lookup позволяет вам иметь метод, который возвращает новый экземпляр объекта каждый раз, когда вы его вызываете. Я прочитал руководство пользователя Guice и не видел очевидного способа сделать это. Я хотел был бы иметь такой код как:Что такое эквивалент Guice методу поиска Spring?
@Inject
private FooInstanceFactory fooInstanceFactory;
//...
Foo foo = fooInstanceFactory.getNewInstanceOfFoo();
//...
Я (возможно, неправильно) считаю Guice как способ удаления ключевого слова 'new' из моей производственной логики. Если у меня есть производственная логика, которая генерирует сообщение JSON и имеет много новых JSONObject() в ней, я должен быть уверен, что каждый созданный JSONObject - это новый экземпляр, а не один. Как я думаю об этом неправильно? –
Место, где каждый JSONObject является новым, находится в логике провайдера, а не в логике потребителя. –
@LouisWasserman Не уверен, правильно ли я интерпретировал ваше утверждение. Если 'SpecificJSONMessageConstructor' нуждается в создании глубоко вложенного сообщения JSON, не нужно ли' SpecificJSONMessageConstructor' знать, что каждый новый объект JSON, который он создает, является другим экземпляром из предыдущего? Я не понимаю, как я могу написать свой код таким образом, чтобы это не имело значения. Но если вы просто * говорите «Поставщик' должен 'возвращать новый JSONObject()', а не 'SpecificJSONMessageConstructor', то я думаю, что мы на одной странице. –