Spring Core Flashcards
Что такое Spring Framework?
Это фреймворк посредством которого происходит решение многих задач, с которыми сталкиваются java - разработчики и организации, которые хотят создать как правило маcштабные информационные приложения, основанные на платформе Java.
Какие преимущества Spring Framework ?
- Lightweight - легко перекрутить (перенастроить) мало весит ( еще фразу сюда кинуть из Ткач )
- Inversion of Control IoC - как результат это модульность, все работает в контейнере
- Aspect oriented (AOP ) - на АОП движок, на котором движется тот же транзакшн менеджмент … тот же hibernate использует AOP … подход на котором строиться много других вещей - является ядром для многих библиотек
- MVC Framework
- Transactions Management
- Exception Handling
- Microservices building
Какие есть модули в Spring Framework ?
- Core Container - отвечает за создание и управление жизненными циклами единицы фреймворка, которая называется бин / бины.
- IoC container - конфигурирование компонентов приложений и управление жизненным циклом java - объектов
- AOP - работает с функциональностью, которая не может быть реализована возможностями объектно- ориентированного программирования на java без потерь ( слайд из потрашителя )
- Security - конфигурируемый инструментарий процессов аутентификации, авторизации, поддерживающий много протоколов.
- Data Access - работает с системами управления реляционными базами данных на java- платформе, используя JDBC - и ORM (object relational mapping) - средства.
- Transaction management - координация различных API управления транзакциями.
- MVC - каркас, основанный на Http и сервлетах, предоставляющий множество возможностей для расширения и настройки. и другие
Что собой представляет Core Container ?
Это базовый Spring модуль, посредством которого создаются и управляются бины спринга, основными отделами которого являются:
- отдел по загрузки ресурсов - > resourceLoader manager ( ResourceLoader interface)
- отдел для считывания и обработки конфигурационной мета даты
- ( отдел где создаются бины - > bean factory )
В чем отличие между DI и IoC ?
Инверсия зависимостей ( IoC ) это принцип объектно-ориентированного программирования, который служит для уменьшения связанности слоев сложных приложений, в спринге имплементируя IoC контейнер.
DI в отношении к IoC является одним из способов реализации последнего.
Что такое Spring Bean?
Это основной объект спринг приложения, который управляется и инициализируется посредством Спринг контейнера.
доп: для создания спринг бина нужно как минимум 3 основных компонента:
- пользовательский код ( как правило это java class ) 2. конфигурационная мета -дата
- spring контейнер с помощью которого бин управляется.
Конфигурационная метадата несет в себе информацию о:
- имя бина и id если надо
- (scope),
- способ инициализации(init(), postConstract, скольки фазный конструктор
- свойства ( например то что можем прописать в SpEL)
- способ связывания.
Что такое BeanFactory ?
Это один из центральных компонентов в спринге, реализует основной функционал IoC контейнера, а именно обеспечивает продвинутый механизм управления бин объектами и отвечает за создание бинов спринга.
Что такое Application Context ?
Это Центральный интерфейс ( родителем которого является beanFactory ) спринг приложения, обеспечивающий доступ к бинам, ( которые используются в спринг приложении. )
Какие есть 4 способа для того чтобы предоставить конфигурационные метаданные Spring контейнеру ?
- Конфигурационные файлы XML
- Java конфигурации ( Аннотации )
- groovy
- kotlin
Какие есть типы scope бинов в Spring ?
- Singleton- единый объект на контейнер (по умолчанию)
- Prototype - любое количество объектов
- Request - Жизненный цикл экземпляра ограничен единственным HTTP запросом;
для каждого нового HTTP запроса создается новый экземпляр бина
http://www.baeldung.com/spring-bean-scopes
******
To set Spring Bean’s scope, we can use @Scope annotation or “scope” attribute in XML configuration files. There are five supported scopes:
singleton
prototype
request
session
global-session
For differences, please refer here.
Является ли singleton bean in Spring thread safe ?
нет
Q11. Are singleton beans thread-safe?
No, singleton beans are not thread-safe, as thread safety is about execution, whereas the singleton is a design pattern focusing on creation. Thread safety depends only on the bean implementation itself.
Что такое inner bean?
Когда бин используется только как поле другого бина, его можно определять как inner bean.
При этом область видимости и время жизни непосредственно связаны бином внутри которого он определен
Как делается инъекция Java Collection объектов в Spring ?
Используя специальные теги
Что такое bean wiring ?
Одна из главных конфигураций Спринг бина, которая устанавливает однозначную связь между двумя бинами или группой бинов.
Что такое auto-wiring ?
Это способ конфигурации связей между бинами спринга, в результате которого связи между бинами определяются автоматически.
Дополнительные настройки кроме аннотации autowiring или ее аналога (как правило не нужны).