В чем разница между @Component, @Repository & amp; @ Сервисные аннотации весной?

Когда вы переопределяете функцию в производном классе, только эта функция в производном классе видна пользователю этого класса. Версия базового класса становится скрытой.

Поэтому ваш указатель pChild, вызывающий doIt (int x), потерпит неудачу, так как вы используете указатель производного класса для вызова функции базового класса. Указатель pParent, вызывающий doIt (int x), будет работать, так как вы используете указатель базового класса для вызова функции базового класса. Даже если у вас есть дочерний объект, на который указывает родительский указатель (upcasted), тип класса здесь определяется объявлением указателя, который является CParent.

Чтобы иметь возможность вызвать этот базовый класс с помощью указателя производного класса вы можете:

  1. Квалифицировать имя базового класса в вызове функции, как показано ниже: pChild->CParent::doIt(123);
  2. Использовать директиву using введите имя функции из базового класса в производный класс, как показано в предыдущих сообщениях.
1892
задан Raman Sahasi 15 June 2017 в 06:31
поделиться

1 ответ

Различие между @Component, @Repository, @Controller & аннотации @Service

@Component †“универсальный и могут использоваться через приложение.
@Service †“аннотируют классы на уровне уровня служб.
@Controller †“аннотируют классы на уровне уровней представления, главным образом используемом в Spring MVC.
@Repository †“аннотируют классы на слое персистентности, который будет действовать как репозиторий базы данных.

@Controller = @Component (Внутренняя Аннотация) + Функции Уровня представления
@Service = @Component (Внутренняя Аннотация) + Функции Уровня служб
@Component = Фактические Компоненты (Бобы)
@Repository = @Component (Внутренняя Аннотация) + Функции Слоя Данных (используют для обработки Доменных Бобов)

5
ответ дан 22 November 2019 в 20:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: