Есть ли разница между @Component и @Service
Какая разница между аннотациями @Component и @Service и между @Repository и @Service.
Вот что я знаю о них:
@Repository и @Service являются специализацией @Component.
@Repository нужно ставить над классом который работает с БД.
@Repository может проводить какую то работу с исключениями.
@Service ставим над классом который отвечает за бизнес логику.
Есть ли еще какая то разница между ними?
Ответы (2 шт):
@Repository оборачивает все исключения в DataException @Service и @Component одинаковы и не имеют разницы, только семантика различна.
Еще какой-либо разницы нет.
Делается это с дальним прицелом на будущее. Вдруг в будущих версиях спринга появятся какие-то особые классы-обертки или доп. функционал для работы с сервисами. Так что, в ваших же интересах ставить правильные аннотации. Код будет логичен и удобочитаем.