2014-01-28 2 views

ответ

4

По умолчанию весенний боб является одноэлементным. Поэтому вам не нужно создавать поле static, чтобы убедиться, что у вас есть только один экземпляр (хотя вы можете, конечно: Java-код - это Java-код).

Однако будет иметь значение, что несколько потоков будут иметь доступ к вашему счетчику. Поэтому вам нужно будет сделать все эти обращения потокобезопасными. Самый простой способ - это, вероятно, использовать AtomicInteger или AtomicLong для реализации счетчика.

+0

Согласен с тем, что нестатический AtomicInteger или AtomicLong является подходящим в этом случае. Комментарий к «вам не нужно ставить поле static, чтобы убедиться, что у вас есть только один экземпляр»: с переменными экземпляра вы могли бы иметь два экземпляра, созданных для одноэлементного компонента, если вы используете проксирование на основе подкласса (CGLIB). Для простого счетчика это не должно быть проблемой. Для дорогостоящего ресурса, созданного в конструкторе одноэлементного, это может быть рассмотрено. –

Смежные вопросы