Spring Framework – Основные понятия и технологии

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/75

flashcard set

Earn XP

Description and Tags

Набор карточек охватывает ключевые сущности Spring Framework, Spring Boot, Spring Data, Spring MVC, AOP, Spring Security, а также связанные концепции HTTP и архитектуры REST/SOAP. Карточки помогут быстро повторить терминологию и процессы, необходимые для экзамена.

spring

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

76 Terms

1
New cards

Inversion of Control (IoC)

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

2
New cards

Dependency Injection (DI)

Реализация IoC, при которой контейнер создает объекты и передаёт им их зависимости.

3
New cards

IoC-контейнер

Компонент Spring, отвечающий за создание и конфигурирование бинов; представлен как ApplicationContext.

4
New cards

BeanFactory

Базовой интерфейс контейнера Spring; создаёт бины «по требованию» и внедряет зависимости.

5
New cards

ApplicationContext

Надстройка над BeanFactory: инициализирует бины при старте, поддерживает i18n, события и др.

6
New cards

BeanDefinition

Метаданные, описывающие бин (класс, зависимости, скоуп, init/destroy-методы).

7
New cards

BeanDefinitionReader

Компонент, считывающий BeanDefinition из XML, аннотаций или Java-конфигурации.

8
New cards

Spring Data

Семейство проектов, упрощающих работу с БД (SQL и NoSQL).

9
New cards

Spring Data JPA

Подпроект, предоставляющий надстройку над JPA (Hibernate и др.) и генерацию запросов по имени методов.

10
New cards

Repository

Marker-интерфейс верхнего уровня иерархии Spring Data репозиториев.

11
New cards

CrudRepository

Интерфейс Spring Data с базовыми методами CRUD, save, findAll, count и др.

12
New cards

PagingAndSortingRepository

Расширяет CrudRepository методами findAll(Pageable/Sort) и Query by Example.

13
New cards

JpaRepository

Наиболее функциональный репозиторий; включает CRUD, пагинацию, сортировку и JPA-специфику.

14
New cards

Spring Boot

Надстройка над Spring, ускоряющая разработку за счёт автоконфигурации, стартеров, встроенного сервера, актуатора и тест-поддержки.

15
New cards

@SpringBootApplication

Композитная аннотация = @SpringBootConfiguration + @ComponentScan + @EnableAutoConfiguration.

16
New cards

@EnableAutoConfiguration

Включает импорт EnableAutoConfigurationImportSelector, который подгружает конфигурации из META-INF/spring.factories.

17
New cards

@ConditionalOnClass

Бин создаётся, если указанный класс найден в classpath.

18
New cards

@ConditionalOnBean

Бин создаётся при наличии другого бина в контексте.

19
New cards

@ConditionalOnMissingBean

Бин создаётся только при отсутствии заданного бина.

20
New cards

Front Controller

Паттерн единой точки входа; в Spring реализован DispatcherServlet.

21
New cards

DispatcherServlet

Главный сервлет Spring MVC: получает запрос, определяет хэндлер, выбирает view и формирует ответ.

22
New cards

@Value

Аннотация для внедрения примитивов, строк, коллекций из application.properties.

23
New cards

Singleton-бин

Бин, существующий в единственном экземпляре на всё приложение (дефолтный скоуп).

24
New cards

Prototype-бин

Новый экземпляр бина выдаётся при каждом запросе из контекста.

25
New cards

@Lookup

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

26
New cards

ContextRefreshedEvent

Событие, когда контекст инициализирован или обновлён.

27
New cards

ContextStartedEvent

Событие, когда контекст запущен (start()).

28
New cards

ContextStoppedEvent

Событие, когда контекст остановлен (stop()).

29
New cards

ContextClosedEvent

Событие, когда контекст закрыт (close()).

30
New cards

@Bean

Аннотация над методом конфигурации, объявляющим бин явно.

31
New cards

Жизненный цикл бина

Регистрация BeanDefinition → BeanFactoryPostProcessor → создание бина → @PostConstruct → init-method → @PreDestroy → destroy-method.

32
New cards

@Component

Помечает класс как компонент для автообнаружения и создания бина.

33
New cards

@Service

Специализация @Component для бизнес-логики.

34
New cards

@Repository

Специализация @Component; перехватывает исключения персистентного слоя и переводит их в DataAccessException.

35
New cards

@Controller

Специализация @Component; содержит обработчики @RequestMapping и возвращает View/Model.

36
New cards

@RestController

@Controller + @ResponseBody по умолчанию; возвращает данные (JSON/XML), а не View.

37
New cards

@ComponentScan

Указывает пакеты для сканирования компонентов; по умолчанию сканирует пакет класса-конфигурации.

38
New cards

@Profile

Активирует бин или конфигурацию только при выбранном профиле (dev, test, prod).

39
New cards

@Transactional

Помечает методы/классы для работы в транзакции; реализуется через прокси.

40
New cards

Propagation REQUIRED

Использует текущую транзакцию или создаёт новую, если её нет (default).

41
New cards

Propagation REQUIRES_NEW

Всегда создаёт новую транзакцию, приостанавливая существующую.

42
New cards

Propagation NESTED

Открывает вложенную транзакцию (savepoint) внутри текущей.

43
New cards

@Autowired

Внедряет зависимость по типу; может использоваться на конструкторе, сеттере, поле.

44
New cards

@Qualifier

Уточняет, какой именно бин внедрять, когда кандидатов несколько.

45
New cards

@Primary

Помечает основной бин, выбираемый по умолчанию при нескольких кандидатах.

46
New cards

@Resource

Java EE аннотация внедрения; ищет бин сначала по имени, затем по типу.

47
New cards

@Inject

JSR-330 аннотация; внедрение по типу, функционал близок к @Autowired, но без расширений Spring.

48
New cards

@Conditional

Обобщённая аннотация для создания бинов при выполнении пользовательского условия.

49
New cards

Model

Интерфейс для передачи данных из контроллера во View.

50
New cards

ModelMap

Наследует LinkedHashMap; удобный способ вернуть данные + цепочку вызовов.

51
New cards

ModelAndView

Содержит и имя View, и модель данных в одном объекте.

52
New cards

ViewResolver

Сопоставляет логическое имя View с реальным представлением (JSP, Thymeleaf и т.д.).

53
New cards

InternalResourceViewResolver

Ищет View внутри приложения (обычно /WEB-INF).

54
New cards

ContentNegotiatingViewResolver

Выбирает View на основе запрошенного клиентом формата (JSON, HTML, XML).

55
New cards

MVC (Model-View-Controller)

Архитектурный паттерн: разделяет модель, представление и логику взаимодействия.

56
New cards

AOP (Aspect-Oriented Programming)

Парадигма разделения бизнес-кода и сквозной (служебной) логики с помощью аспектов.

57
New cards

Advice

Код сквозной логики; бывает Before, AfterReturning, AfterThrowing, After (finally), Around.

58
New cards

Pointcut

Выражение, определяющее, к каким joinpoint применяется advice.

59
New cards

CGLIB-прокси

Создаёт подкласс целевого класса; используется, когда нет интерфейса.

60
New cards

JDK Dynamic Proxy

Создаёт прокси-объект, реализующий интерфейсы целевого класса.

61
New cards

Filter

Компонент сервлет-контейнера; перехватывает HTTP-запросы/ответы до/после сервлета.

62
New cards

Listener

Слушатель жизненного цикла приложения, сессии или запросов; реагирует на события сервлет-контейнера.

63
New cards

Interceptor (Spring MVC)

Перехватывает вызовы контроллеров; выполняет pre- и post-обработку.

64
New cards

HTTP идемпотентность

Свойство запроса, при котором повторное выполнение не изменяет состояние сервера (GET, PUT, DELETE и др.).

65
New cards

REST

Стиль архитектуры веб-сервисов;

6 правил реста:

1. клиент сервер - клиент и сервер должны быть разделены и общаться между собой запросами, чаще всего хттп запросами

2. отсутствие состояние - вся нужная информация находится в запросе

3. кэширование - ответы сервера должны явно указывать, можно ли их кэшировать

4. единый интерфейс - использование хттп для запросов

5. многоуровневая система -архитектура может быть многоуровневой, тк клиент. не видит с каким именно сервером он общается

6. код по требованию, сервер может передать код клиенту и тот его ввполнит

66
New cards

SOAP

Протокол обмена XML-сообщениями (Envelope/Header/Body/Fault) с контрактом WSDL и строгой схемой.

67
New cards

UsernamePasswordAuthenticationFilter

Фильтр Spring Security, принимающий логин/пароль и создающий Authentication.

68
New cards

Authentication

Объект, представляющий учётные данные пользователя и его права.

69
New cards

UsernamePasswordAuthenticationToken

Реализация Authentication для логина/пароля.

70
New cards

AuthenticationManager

Интерфейс, отвечающий за аутентификацию; реализуется ProviderManager.

71
New cards

AuthenticationProvider

Поставщик конкретной логики аутентификации; использует UserDetailsService.

72
New cards

UserDetailsService

Интерфейс, загружающий пользователя из БД и возвращающий UserDetails.

73
New cards

UserDetails

Модель пользователя в Spring Security: логин, пароль, authorities, активности.

74
New cards

AccessDecisionManager

Принимает решение об авторизации, анализируя Authentication и требуемые права.

75
New cards

AuthenticationSuccessHandler

Класс-обработчик успешной аутентификации.

76
New cards

AuthenticationFailureHandler

Класс-обработчик неуспешной аутентификации.