@ Component : вы аннотируете класс @Component, он сообщает hibernate, что это Бин.
@ Repository : вы аннотируете класс @Repository,он сообщает hibernate, что это класс DAO, и рассматривает его как класс DAO.Это означает, что непроверенные исключения (генерируемые из методов DAO) могут быть преобразованы в Spring DataAccessException.
@ Service : это говорит hibernate, что это класс Service, в котором у вас будет служба @Transactional и т. Д.аннотации слоев, поэтому hibernate рассматривает его как компонент Service.
Plus @Service - это преимущество @Component.Предположим, что имя класса bean-компонента - CustomerService, поскольку вы не выбрали способ конфигурации bean-компонента XML, поэтому вы пометили bean-компонент @Component, чтобы указать его как Bean-компонент.Таким образом, при получении объекта bean CustomerService cust = (CustomerService)context.getBean("customerService");
По умолчанию Spring будет нижний регистр первого символа компонента - от CustomerService до customerService.И вы можете получить этот компонент с именем 'customerService'.Но если вы используете аннотацию @Service для класса компонента, вы можете указать конкретное имя компонента по
@Service("AAA")
public class CustomerService{
и получить объект компонента по
CustomerService cust = (CustomerService)context.getBean("AAA");