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