Injector.getInstance (..) возвращает новый экземпляр для одиночного элемента

С другой стороны, я не хочу, чтобы эти предупреждения появлялись в журналах, поскольку клиенты могут получить доступ к случайному URI, и я не хочу получать уведомления об этом.

blockquote>

Затем просто отключите регистратор, который регистрирует эти предупреждения.

Начиная с Spring 5.1.4.RELEASE , они регистрируются от DispatcherServlet через этих членов

/** Log category to use when no mapped handler is found for a request. */
public static final String PAGE_NOT_FOUND_LOG_CATEGORY = "org.springframework.web.servlet.PageNotFound";

/** Additional logger to use when no mapped handler is found for a request. */
protected static final Log pageNotFoundLogger = LogFactory.getLog(PAGE_NOT_FOUND_LOG_CATEGORY);

С Logback вы можете объявить что-то вроде


   ...

Аналогично, с log4j2 вы бы сделали


   ...

8
задан ashitaka 10 February 2009 в 04:30
поделиться

1 ответ

Это - ожидаемое поведение потому что TranslatorImpl.class не связывается с одноэлементным объемом, только Translator.class .

Если Вы хотите обоих getInstance(..) для возврата того же экземпляра Вы могли связать реализацию с одноэлементным объемом:

bind(Translator.class).to(TranslatorImpl.class);
bind(TranslatorImpl.class).in(Scopes.SINGLETON);
assertEquals(injector.getInstance(Translator.class), injector.getInstance(TranslatorImpl.class));

См. https://github.com/google/guice/wiki/Scopes#applying-scopes для получения дополнительной информации.

17
ответ дан 5 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: