Подтвердить что ты не робот

При аннотации класса с @Component это означает, что это Spring Bean и Singleton?

является довольно новым для Spring У меня вопрос об аннотировании класса. При аннотации класса с @Component означает ли это, что этот класс будет Spring Bean и по умолчанию является singleton?

4b9b3361

Ответ 1

Да, это правильно.

Если класс принадлежит служебному слою, вы можете захотеть его аннотировать с помощью @Service

Но имейте в виду, что для того, чтобы эти аннотации были обнаружены, вам нужно поместить эту строку в applicationContext.xml:

<context:component-scan base-package="com.yourcompany" />

О синглтонах - spring beans по умолчанию находятся в одиночной области. Единственное, что вы должны иметь в виду, это то, что вы не должны хранить состояние в переменных поля (они должны содержать только зависимости). Таким образом, ваше приложение будет потокобезопасным, и каждый раз вам не потребуется новый экземпляр bean. Другими словами, ваш beans не имеет статуса.

Ответ 2

По умолчанию - Да.

Однако вы можете переопределить это поведение, используя аннотацию @Scope. Например: @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)