Объясните аннотацию Spring @bean на местном языке

Spring

1. Весенняя классификация аннотаций

Вообще говоря, аннотации Spring можно разделить на две категории:

Класс аннотаций используется для регистрации бинов

Если контейнер МОК — это пустая комната, то, во-первых, в этой пустой комнате ничего нет. Здесь операция перемещения определенного ингредиента или определенной посуды в пустую комнату эквивалентна аналогичной функции аннотации каждого зарегистрированного боба. Функция аннотации зарегистрированного компонента состоит в том, чтобы поместить (зарегистрировать) вещи в контейнер IOC! Аннотации для регистрации bean-компонентов: такие как @Component , @Repository , @Controller , @Service , @Configration Эти аннотации используются для регистрации bean-компонентов и помещения их в IOC-контейнер.Во-первых, они передаются управлению Spring для облегчения развязки.Второй , их также можно использовать для регистрации bean-компонентов. Что такое вторичное использование для вторичного использования? Вторичное использование здесь можно понимать так: когда вы начинаете нести ингредиенты и посуду снаружи в пустую комнату, вы одновременно несете четыре вещи, такие как свинина, баранина, железная ложка и палочки для еды. должны начать есть большую еду, прежде всего Когда вы едите, вы должны использовать палочки для еды или железные ложки, не говоря уже о том, чтобы хватать его руками, пока вам это нужно, вы найдете это. В это время вы обнаружите, что вы положили палочки для еды или железные ложки в дом, и вам не нужно выходить на улицу.Внесение палочек в дом означает, что контейнер МОК уже существует, вы можете просто использовать его без необходимости повторной регистрации! А операция по взятию того, что уже есть в доме, и есть аннотация по использованию бина, описываемая ниже!

Класс аннотаций используется для использования bean-компонентов

Аннотации для использования бинов: такие как аннотации @Autowired, @Resource, эти аннотации, чтобы использовать вещи в доме сами по себе.Если вы хотите их взять, помещение должно быть в доме (IOC), иначе будет ошибка Например, вам нужно пять коров в качестве сырья, чтобы приготовить блюдо из говядины. У вас есть только четыре коровы в горшке. В настоящее время вы знаете, что переселили пять коров в дом. Поместите прямо в горшок, чтобы завершить приготовление сборка говяжьей тарелки. Да, эти аннотации то, что нужно и хочется, пока есть в контейнере, бери в контейнере! И эти аннотации имеют свои отличия. Например, @Autowired используется для палочек для еды. Вы можете использовать только деревянные палочки для еды. Вы можете использовать только железные. Если ресурс используется для говядины Ангус, он указывает говядину, чье имя это говядина Ангус.

2. Обзор аннотации @Bean

В этой статье в основном рассказывается об аннотации @Bean, которая относится к аннотации, используемой для регистрации bean-компонентов.

Следующий отрывок взят изПочему в Spring есть аннотация @Bean?

Аннотация Spring @Bean используется, чтобы указать методу создать объект Bean, который затем передается Spring для управления. Метод, генерирующий объект Bean, будет вызываться Spring только один раз, а затем Spring поместит объект Bean в свой собственный контейнер IOC. @Bean явно указывает метод, какой метод? Сгенерировать метод бина и передать его контейнеру Spring для управления; из этого мы понимаем, почему @Bean помещен в аннотацию метода, потому что он ясно говорит аннотированному методу, вы генерируете Bean для меня, Затем передаете его в Весенний контейнер, а на остальное тебе наплевать. Помните, что @Bean помещается в метод, что позволяет методу генерировать Bean-компонент и затем передавать его контейнеру Spring.

Таким образом, метод accountDao может генерировать объект AccountDao, а затем объект AccountDao передается Spring для управления.

 class A{
        @Bean
        public AccountDao accountDao(){
            return new AccountDao();
        }
    }

На самом деле аннотация @Bean работает так же, как тег bean-компонента в конфигурации xml.

3. Зачем вам нужна аннотация @Bean?

Не знаю, задумывались ли вы об этом, аннотаций для регистрации бинов очень много, зачем вам аннотация @Bean?

Причина проста: аннотации, такие как @Component , @Repository , @Controller , @Service эти зарегистрированные bean-компоненты имеют ограничения и могут быть ограничены только классами, написанными самими.Если это сторонняя библиотека пакета jar, которую необходимо добавленные в контейнер IOC, эти аннотации ничего не делают, и да, аннотация @Bean может это сделать! Конечно, в дополнение к аннотации @Bean, @Import также может передать экземпляр класса в сторонней библиотеке в управление Spring, и @Import более удобен и быстр, но аннотация @Import не входит в рамки этой статье, поэтому я не буду излагать ее здесь. .

Еще одно преимущество использования аннотации @Bean заключается в том, что она может динамически получать объект Bean и может получать разные объекты Bean в соответствии с различными средами.

4, сводка аннотаций @Bean

1. Аннотация Spring @Bean используется, чтобы указать методу сгенерировать объект Bean, а затем этот объект Bean передается Spring для управления. Метод, генерирующий объект Bean, будет вызываться Spring только один раз, а затем Spring поместит объект Bean в свой собственный контейнер IOC.

2. @Component , @Repository , @Controller , @Service Эти аннотации ограничены классами, написанными самими собой, в то время как аннотация @Bean может добавлять экземпляры классов в сторонних библиотеках в IOC-контейнер и передавать его в Spring для управления .

3. Еще одно преимущество аннотации @Bean заключается в том, что она может динамически получать объект Bean и может получать разные объекты Bean в соответствии с различными средами.

4. Помните, @Bean размещается на методе, то есть пусть метод сгенерирует Bean, а затем передаст его контейнеру Spring, а на остальное вам плевать.

Конечно, конкретные детали аннотации @Bean здесь не упоминаются, а только общее описание.Если у вас есть другие потребности, вы можете сами найти это в Google....

end.....

Если эта статья хоть немного вам поможет, то ставьте лайк, спасибо~

Наконец, если есть какие-либо недостатки или неточности, добро пожаловать на исправления и критику, большое спасибо! Если у вас есть какие-либо вопросы, пожалуйста, оставьте сообщение и ответьте как можно скорее!

Приглашаю всех обратить внимание на мою официальную учетную запись, там есть некоторые учебные материалы по Java и большая волна электронных книг по Java, таких как всесторонняя виртуальная машина Java г-на Чжоу Чжимина, идеи программирования Java, объемы основных технологий, большой разговор о дизайне. паттерны, борьба с параллельным программированием на Java... .. Это все библия Java, не говоря уже о том, чтобы садиться в машину Tomcat, поехали! Самое главное - вместе обсуждать технологии, тосковать по технологиям, заниматься технологиями, и когда это согласовано, это друг горшка ...

在这里插入图片描述