Все они помечают класс как Spring Bean и наследуют @Component. Разница семантическая: @Service — бизнес-логика, @Repository — доступ к данным (плюс автоматическая трансляция SQL-исключений в Spring DataAccessException), @Controller — web-контроллер. Технически они взаимозаменяемы, но правильные аннотации помогают читаемости, AOP-pointcut-ам и специальной обработке. @Component — для всего, что не подходит под остальные.
В чём разница между @Component, @Service, @Repository, @Controller?
Junior
424 просмотровAFK Offer AI
Как работает garbage collector в Java?