Да, это правильно, @Component
- это Spring bean и Singleton.
Если класс принадлежит сервисному слою, вы можете добавить к нему @Service
вместо
Но имейте в виду, что для того, чтобы эти аннотации были обнаружены, вам нужно поместить эту строку в applicationContext.xml
:
<context:component-scan base-package="com.yourcompany" />
О синглетонах - по умолчанию все бобы весны находятся в одноэлементной области видимости. Единственное, что вы должны иметь в виду, это то, что вы не должны хранить состояние в переменных поля (они должны содержать только зависимости). Таким образом, ваше приложение будет поточно-ориентированным, и вам не потребуется каждый раз новый экземпляр компонента. Другими словами, ваши бобы не имеют состояния.