Spring Core Flashcards Preview

Java Core > Spring Core > Flashcards

Flashcards in Spring Core Deck (50)
Loading flashcards...
1

Что такое Spring Framework?

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

2

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

lightweight
Inversion of control IoC
Aspect oriented (AOP)
Container
MVC Framework
Transaction Management
Exception Handling

3

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

Core
-Beans
-Core
-Context
-SpEL
AOP
Aspects
Instrumentation
Messaging
Web
-webSocket
-Web
-Servlet
-Portlet
Data Access/Integration
-JDBC
-ORM
-OMX
-JMS
-Transaction

4

Какие модули Spring часть 2

IoC container - конфигурирование компонентов приложений и управление жизненым циклом Java-объектов
AOP - работает с функциональностью, которая может быть реализованна возможностями объектно-ориентированного программирования на Java без потерь
Security - конфигурируемый инструментарий процессов аутентификации и авторизации, поддерживающий много протоколов

5

Какие модули Spring часть 3

Data Access - работает с системами управления реляционными базами данных на Java платформе, используя JDBC и ORM средства
Trasaction Management - координация различных API управления транзакциями.
MVC - каркас, основанный на HTTP и сервлетах, предоставляющий множество возможностей для расширения и настройки.

6

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

Это базовый Spring модуль, который представляет фундаментальные части функциональности Spring:
IoC
Beans
Context
Spring expression

7

Что такое IoC?

Инверсия управления - это общее понятие, которое отличает библиотеку от фреймворка. Подразумевает что вызывающий код контролирует внешнее окружение и время и порядок вызова библиотечных методов. Однако, в случае фреймворка обязанности меняются местами: фреймворк предоставляет некоторые точки расширения, через которые он вызывает определенные методы пользовательского кода.

8

Что такое DI?

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

9

Какие есть типы IoC?

Constructor-based
Setter-based
Interface-based

10

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

Инверсия зависимости это принцип ООП, который служит для уменьшения связанности слоев сложных приложений.
DI контейнер это реализация, которая позволяет применит принцип инверсии зависимостей. Она знает о всех интерфейсах и их реализациях в системе и умеет их сопоставлять.

11

Что такое Spring Beans?

Это объекты, которые представляют модель вашего приложения, которыми управляет spring контейнер.
У bean есть имя, scope, способ инициализации, свойства, способ связывания.

12

Что такое BeanFactory?

Это реализация шаблона Фабрика, которая применяется к IoC чтобы отделить конфигурацию приложения и зависимости в программном коде.
Например XMLBeanFactory загружает beans, определения которые находятся в XML файле

13

Какие вы знаете реализации BeanFactory?

XMLBeanFactory
SimpleJndiBeanFactory
ClassPathXmlAppliccationContext
XmlWebApplicationContext
AnnotationConfigWebApplicationContext
AnnotationConfigApplicationContext
FileSystemXmlApplicationContext
StaticWebApplicationContext

14

Что такое Application Context?

Это интерфейс, который предоставляет конфигурацию приложения. Доступен только для чтения во время выполнения.
Предоставляет:
Factory methods бинов для доступа к компонентам;
Создавать события и регистрировать слушателей;
Загружать файлы конфигурации;
Наследуется от родительского контекста;
поддержка i18n интернализации.

15

Чем отличается Application Context от BeanFactory?

Bean Factory
инициализирует и делает инъекции бинов.
Application Context
инициализирует и делает инъекции бинов, сообщений и обработку событий;
Автоматически регистрирует BeanPostProcessor, BeanFactoryPostProcessor;
Источник событий, доступ к источнику событий.

16

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

Конфигурационный файл XML*
Аннотации
Java конфигурации

17

Как определить scope свойства бина?

Используя атрибут scope

18

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

Session - жизненный цикл экземпляра ограничен в пределах одной и той же HTTP Session
Global-session Жизненный цикл экземпляра ограничен в пределах глобальной HTTP Session
Singleton - единый объект на контейнер (по умолчанию)
Prototype - любое количество объектов
Request - ЖЦ ограничен единственным HTTP запросом; для каждого нового запроса создается новый экземпляр бина.

19

Является ли singleton bean в Spring потокобезопасным?

Нет, он не thread-safe.

20

Опишите жизненный цикл bean в Spring framework

Контейнер находит бины в XML;
Делаются настройки которые определены для бина;
Вызываются методы setBeanName() если бин реализует BeanNameAware
postProcessorBeforeInitialization();
Вызывается afterPropertySet() если бин реализует InitializingBean
postProcessAfterInitialization()
Если реализуется DisposableBean - вызывается destroy()

21

Что такое inner bean?

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

22

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

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



используется для String пара имя-значение.

23

Что такое bean wiring?

Это случай когда бины сочетаются вместе в Spring контейнере. В этом случае Spring контейнер должен знать, какие бины нужны и как использовать DI для объединения вместе.

24

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

Это разрешения Spring автоматически определять связь между бинами, через анализ BeanFactory, без использования аргументов конструктора или элементов.

25

Что предоставляет аннотация @Autowiring?

Предоставляет полный контроль над тем как и куда Spring должен сделать инъекцию. Может исльзоватся для полей , сеттеров.

26

Какие есть модели auto-wiring?

По имени(by Name)(по умолчанию)
По типу(by Type)
Через конструктор
Автоопределение

27

Может ли приложение иметь более одного Spring Container?

Да, может.
В web приложениях Spring есть два типа контейнеров.
Один - Application Context - инициализируется через ContextLoaderListener или ContextLoaderServlet.
Дригие - Web Application Context - по одному на каждый DispatcherServlet.

28

Какие есть ограничения для autowiring?

Overriding: или всегда будут переопределять auto-wiring.
Нельзя делать инъекции через auto-wiring для примитивов строк и классов

29

Как включить wiring на основе аннотаций?

В файле конфигураций Spring прописать:

30

Для чего используется аннотация Qualifier?

Используется вместе с Autowired когда нужно делать инъекции одинакового типа. Принимает String параметр.