Во-первых, понимание пружинного контейнера
Контейнер Spring можно понимать как место для производства объектов (OBJECT), где контейнер не просто создает объекты для нас, он отвечает за весь жизненный цикл объектов — создание, сборку и уничтожение. Управление созданием и управлением объектами здесь передается контейнеру Spring, так что это реверс управления, называемый контейнером IOC, а контейнер IOC не только принадлежит Spring, но и многие фреймворки также имеют эту технологию.
Во-вторых, связь между BeanFactory и ApplicationContext.
Два основных интерфейса Spring:BeanFactoryа такжеApplicationContext
1) ApplicationContext — это подинтерфейс BeanFactory, а основным методом является getBean (String beanName).
2) BeanFactory, дословно переводится как Bean Factory (com.springframework.beans.factory.BeanFactory), мы обычно называем BeanFactory контейнером IoC, а ApplicationContext — контекстом приложения.
Ядром Spring является контейнер, и контейнер не единственный, который можно условно разделить на два типа.(BeanFactory и ApplicationContext):
Одним из них является менее часто используемый BeanFactory, который является простейшим контейнером и может предоставлять только основные функции DI;
Одним из них является ApplicationContext (контекст приложения), производный от BeanFactory, который может предоставлять больше услуг корпоративного уровня, таких как анализ текстовой информации конфигурации и т. д. Это также наиболее распространенный сценарий приложения объектов экземпляра ApplicationContext.
Резюме: BeanFactory — это сердце Sping, тогда как ApplicationContext — это полное тело.
В дополнение ко всем функциям, поддерживаемым BeanFactory, ApplicationContext имеет следующие дополнительные функции:
1、默认初始化所有的Singleton,也可以通过配置取消预初始化。
2、继承MessageSource,因此支持国际化。
3、资源访问,比如访问URL和文件。
4、事件机制。
5、同时加载多个配置文件。
6、以声明式方式启动并创建Spring容器。
Уведомление:Поскольку ApplicationContext будет предварительно инициализировать все Singleton Bean, на ранней стадии создания системы возникнут большие накладные расходы, но как только инициализация ApplicationContext будет завершена, программа будет иметь более высокую производительность при последующем получении экземпляров Singleton Bean. Также возможно установить для свойства lazy-init значение true для bean-компонента, т. е. контейнер Spring не будет предварительно инициализировать bean-компонент.
3. Три способа для Spring собрать bean-компоненты
Примечание: сборка и инжекция разные, здесь сборка заключается в том, чтобы поместить бин в IOC-контейнер, то есть сканировать различные бины.
1. Отобразите конфигурацию в формате XML и загрузите конфигурацию в контейнер IOC через файл xml.
2. Отображение конфигурации в Java.Через аннотацию java @Configuration и @Bean загружают конфигурацию в контейнер IOC.
3. Неявный механизм обнаружения bean-компонентов и автоматическая сборка, @Configuration, @Component, @ComponentScan (Spring автоматически обнаружит bean-компоненты, созданные в контексте приложения.)
Четыре, Spring три метода впрыска
Spring реализует IOC (инверсию управления) через DI (внедрение зависимостей).Существует три широко используемых метода внедрения: (внедрение конструктора, внедрение сеттера, внедрение аннотации)
1,Инъекция конструктора:Настройте параметры, которые необходимо ввести в файле конфигурации spring xml.
2,инъекция сеттера:
3.Инъекция на основе аннотаций:
Просто используйте @autowired
Пять, весенние общие аннотации
@Component :标准一个普通的spring Bean类。
@Repository:标注一个DAO组件类。
@Service:标注一个业务逻辑组件类。
@Controller:标注一个控制器组件类。
Справочный блог:
Понимание контейнера Spring, BeanFactory и ApplicationContext
Вывод: Раньше я читал блоги других людей, чтобы изучать техники.Среди них есть много элитных блогов и статей о Дафа, поэтому я решил поделиться знаниями, которые я изучил, использовал и систематизировал со всеми, главным образом потому, что я хочу избежать обходных путей для будущих волн. , Больше блогов с положительной энергетикой. Если есть какие-либо ошибки или упущения, пожалуйста, поправьте меня. Я просто надеюсь, что каждый может почерпнуть знания из моего блога и решить проблему, тогда этого достаточно. Спасибо вам всем! (Пожалуйста, указывайте источник оригинального текста при перепечатке)