Когда мы должны использовать @Component весной? - PullRequest
4 голосов
/ 22 апреля 2019

С точки зрения разработки программного обеспечения, когда мы должны использовать @Component вместо традиционного Java-класса (который должен быть явно создан 'new')?Например, если нам нужно создать класс, который является одним из следующих шаблонов:

  • Адаптер

  • Мост

  • Фасад

  • Стратегия

  • Переводчик

Если класс имеет@Component аннотация (или любая аннотация производной Spring, такая как @Repository / @Controller / @Service)?

1 Ответ

4 голосов
/ 22 апреля 2019

Spring применяет принцип инверсии управления, который сводится к тому, что фреймворк обрабатывает вещи за вас, поэтому вам не нужно об этом беспокоиться.

Используя @Component в классе, вы позволяете Spring создать компонент для вас.Таким образом, Spring может, например, внедрить этот bean-компонент во время выполнения, когда вам это нужно.(Например, с помощью Autowiring вашего конструктора).

Вам решать, хотите ли вы использовать эту функциональность для своего класса.Например, фасад вполне может быть компонентом Spring, так что вы можете внедрить реализацию API, которая предоставляется через фасад во время выполнения, без необходимости думать о реализации внедрения зависимостей.
Я бы не рекомендовал использовать этоаннотация на DTO или модельный класс, например.Эти классы в основном состоят из данных и не соответствуют необходимости управления Spring.

Другие интересные вопросы, которые могут помочь вам решить, когда создавать компонент:
В чем разница между аннотациями @Component, @Repository & @Service в Spring?

Spring: @Component vs. @ Bean

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...