Spring Core Flashcards

1
Q

Что такое Spring Framework?

A

Это фреймворк посредством которого происходит решение многих задач, с которыми сталкиваются java - разработчики и организации, которые хотят создать как правило маcштабные информационные приложения, основанные на платформе Java.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Какие преимущества Spring Framework ?

A
  1. Lightweight - легко перекрутить (перенастроить) мало весит ( еще фразу сюда кинуть из Ткач )
  2. Inversion of Control IoC - как результат это модульность, все работает в контейнере
  3. Aspect oriented (AOP ) - на АОП движок, на котором движется тот же транзакшн менеджмент … тот же hibernate использует AOP … подход на котором строиться много других вещей - является ядром для многих библиотек
  4. MVC Framework
  5. Transactions Management
  6. Exception Handling
  7. Microservices building
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Какие есть модули в Spring Framework ?

A
  1. Core Container - отвечает за создание и управление жизненными циклами единицы фреймворка, которая называется бин / бины.
  2. IoC container - конфигурирование компонентов приложений и управление жизненным циклом java - объектов
  3. AOP - работает с функциональностью, которая не может быть реализована возможностями объектно- ориентированного программирования на java без потерь ( слайд из потрашителя )
  4. Security - конфигурируемый инструментарий процессов аутентификации, авторизации, поддерживающий много протоколов.
  5. Data Access - работает с системами управления реляционными базами данных на java- платформе, используя JDBC - и ORM (object relational mapping) - средства.
  6. Transaction management - координация различных API управления транзакциями.
  7. MVC - каркас, основанный на Http и сервлетах, предоставляющий множество возможностей для расширения и настройки. и другие
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Что собой представляет Core Container ?

A

Это базовый Spring модуль, посредством которого создаются и управляются бины спринга, основными отделами которого являются:

  1. отдел по загрузки ресурсов - > resourceLoader manager ( ResourceLoader interface)
  2. отдел для считывания и обработки конфигурационной мета даты
  3. ( отдел где создаются бины - > bean factory )
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

В чем отличие между DI и IoC ?

A

Инверсия зависимостей ( IoC ) это принцип объектно-ориентированного программирования, который служит для уменьшения связанности слоев сложных приложений, в спринге имплементируя IoC контейнер.

DI в отношении к IoC является одним из способов реализации последнего.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Что такое Spring Bean?

A

Это основной объект спринг приложения, который управляется и инициализируется посредством Спринг контейнера.

доп: для создания спринг бина нужно как минимум 3 основных компонента:

  1. пользовательский код ( как правило это java class ) 2. конфигурационная мета -дата
  2. spring контейнер с помощью которого бин управляется.

Конфигурационная метадата несет в себе информацию о:

  1. имя бина и id если надо
  2. (scope),
  3. способ инициализации(init(), postConstract, скольки фазный конструктор
  4. свойства ( например то что можем прописать в SpEL)
  5. способ связывания.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Что такое BeanFactory ?

A

Это один из центральных компонентов в спринге, реализует основной функционал IoC контейнера, а именно обеспечивает продвинутый механизм управления бин объектами и отвечает за создание бинов спринга.

https://techythought.wordpress.com/2013/01/12/92/

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Что такое Application Context ?

A

Это Центральный интерфейс ( родителем которого является beanFactory ) спринг приложения, обеспечивающий доступ к бинам, ( которые используются в спринг приложении. )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Какие есть 4 способа для того чтобы предоставить конфигурационные метаданные Spring контейнеру ?

A
  • Конфигурационные файлы XML
  • Java конфигурации ( Аннотации )
  • groovy
  • kotlin
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Какие есть типы scope бинов в Spring ?

A
  • 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.

https://www.baeldung.com/spring-interview-questions#Q4

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Является ли singleton bean in Spring thread safe ?

A

нет

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.

https://www.baeldung.com/spring-interview-questions#Q7

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Что такое inner bean?

A

Когда бин используется только как поле другого бина, его можно определять как inner bean.

При этом область видимости и время жизни непосредственно связаны бином внутри которого он определен

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Как делается инъекция Java Collection объектов в Spring ?

A

Используя специальные теги

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Что такое bean wiring ?

A

Одна из главных конфигураций Спринг бина, которая устанавливает однозначную связь между двумя бинами или группой бинов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Что такое auto-wiring ?

A

Это способ конфигурации связей между бинами спринга, в результате которого связи между бинами определяются автоматически.

Дополнительные настройки кроме аннотации autowiring или ее аналога (как правило не нужны).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Для чего предназначена аннотация @Autowiring

A

Этой аннотацией помечается конструктор, поля, сеттеры или конфигурационный метод, внутри которого процесс внедрения зависимости будет проходить автоматически, т.е. без необходимости в дополнительной конфигурации.

17
Q

что такое servlet?

A

https://javarush.ru/groups/posts/523-vashe-pervoe-prilozhenie-s-ispoljhzovaniem-java-servletov

http://javastudy.ru/interview/jee-servlet-api-questions/

Википедия гласит: “Сервлет является интерфейсом Java, реализация которого расширяет функциональные возможности сервера. Сервлет взаимодействует с клиентами посредством принципа запрос-ответ.” (HTTP)

Клиент обращается к серверу посредством отправки HTTP-запроса. Сервер формирует необходимые данные (например, получает их из базы данных) и возвращает клиенту. Самый простой пример: в некоей социальной сети вы нажимаете на кнопку “Друзья” и отправляете таким образом запрос серверу. Сервер уточняет в базе данных список ваших друзей, и возвращает его вам (клиенту).

Является слоем между клиентом и базой данных