1/75
Набор карточек охватывает ключевые сущности Spring Framework, Spring Boot, Spring Data, Spring MVC, AOP, Spring Security, а также связанные концепции HTTP и архитектуры REST/SOAP. Карточки помогут быстро повторить терминологию и процессы, необходимые для экзамена.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Inversion of Control (IoC)
Принцип, при котором контроль над созданием и связыванием объектов передается фреймворку, а не программисту.
Dependency Injection (DI)
Реализация IoC, при которой контейнер создает объекты и передаёт им их зависимости.
IoC-контейнер
Компонент Spring, отвечающий за создание и конфигурирование бинов; представлен как ApplicationContext.
BeanFactory
Базовой интерфейс контейнера Spring; создаёт бины «по требованию» и внедряет зависимости.
ApplicationContext
Надстройка над BeanFactory: инициализирует бины при старте, поддерживает i18n, события и др.
BeanDefinition
Метаданные, описывающие бин (класс, зависимости, скоуп, init/destroy-методы).
BeanDefinitionReader
Компонент, считывающий BeanDefinition из XML, аннотаций или Java-конфигурации.
Spring Data
Семейство проектов, упрощающих работу с БД (SQL и NoSQL).
Spring Data JPA
Подпроект, предоставляющий надстройку над JPA (Hibernate и др.) и генерацию запросов по имени методов.
Repository
Marker-интерфейс верхнего уровня иерархии Spring Data репозиториев.
CrudRepository
Интерфейс Spring Data с базовыми методами CRUD, save, findAll, count и др.
PagingAndSortingRepository
Расширяет CrudRepository методами findAll(Pageable/Sort) и Query by Example.
JpaRepository
Наиболее функциональный репозиторий; включает CRUD, пагинацию, сортировку и JPA-специфику.
Spring Boot
Надстройка над Spring, ускоряющая разработку за счёт автоконфигурации, стартеров, встроенного сервера, актуатора и тест-поддержки.
@SpringBootApplication
Композитная аннотация = @SpringBootConfiguration + @ComponentScan + @EnableAutoConfiguration.
@EnableAutoConfiguration
Включает импорт EnableAutoConfigurationImportSelector, который подгружает конфигурации из META-INF/spring.factories.
@ConditionalOnClass
Бин создаётся, если указанный класс найден в classpath.
@ConditionalOnBean
Бин создаётся при наличии другого бина в контексте.
@ConditionalOnMissingBean
Бин создаётся только при отсутствии заданного бина.
Front Controller
Паттерн единой точки входа; в Spring реализован DispatcherServlet.
DispatcherServlet
Главный сервлет Spring MVC: получает запрос, определяет хэндлер, выбирает view и формирует ответ.
@Value
Аннотация для внедрения примитивов, строк, коллекций из application.properties.
Singleton-бин
Бин, существующий в единственном экземпляре на всё приложение (дефолтный скоуп).
Prototype-бин
Новый экземпляр бина выдаётся при каждом запросе из контекста.
@Lookup
Позволяет синглтону запрашивать новый экземпляр прототипа при каждом вызове метода-фабрики.
ContextRefreshedEvent
Событие, когда контекст инициализирован или обновлён.
ContextStartedEvent
Событие, когда контекст запущен (start()).
ContextStoppedEvent
Событие, когда контекст остановлен (stop()).
ContextClosedEvent
Событие, когда контекст закрыт (close()).
@Bean
Аннотация над методом конфигурации, объявляющим бин явно.
Жизненный цикл бина
Регистрация BeanDefinition → BeanFactoryPostProcessor → создание бина → @PostConstruct → init-method → @PreDestroy → destroy-method.
@Component
Помечает класс как компонент для автообнаружения и создания бина.
@Service
Специализация @Component для бизнес-логики.
@Repository
Специализация @Component; перехватывает исключения персистентного слоя и переводит их в DataAccessException.
@Controller
Специализация @Component; содержит обработчики @RequestMapping и возвращает View/Model.
@RestController
@Controller + @ResponseBody по умолчанию; возвращает данные (JSON/XML), а не View.
@ComponentScan
Указывает пакеты для сканирования компонентов; по умолчанию сканирует пакет класса-конфигурации.
@Profile
Активирует бин или конфигурацию только при выбранном профиле (dev, test, prod).
@Transactional
Помечает методы/классы для работы в транзакции; реализуется через прокси.
Propagation REQUIRED
Использует текущую транзакцию или создаёт новую, если её нет (default).
Propagation REQUIRES_NEW
Всегда создаёт новую транзакцию, приостанавливая существующую.
Propagation NESTED
Открывает вложенную транзакцию (savepoint) внутри текущей.
@Autowired
Внедряет зависимость по типу; может использоваться на конструкторе, сеттере, поле.
@Qualifier
Уточняет, какой именно бин внедрять, когда кандидатов несколько.
@Primary
Помечает основной бин, выбираемый по умолчанию при нескольких кандидатах.
@Resource
Java EE аннотация внедрения; ищет бин сначала по имени, затем по типу.
@Inject
JSR-330 аннотация; внедрение по типу, функционал близок к @Autowired, но без расширений Spring.
@Conditional
Обобщённая аннотация для создания бинов при выполнении пользовательского условия.
Model
Интерфейс для передачи данных из контроллера во View.
ModelMap
Наследует LinkedHashMap; удобный способ вернуть данные + цепочку вызовов.
ModelAndView
Содержит и имя View, и модель данных в одном объекте.
ViewResolver
Сопоставляет логическое имя View с реальным представлением (JSP, Thymeleaf и т.д.).
InternalResourceViewResolver
Ищет View внутри приложения (обычно /WEB-INF).
ContentNegotiatingViewResolver
Выбирает View на основе запрошенного клиентом формата (JSON, HTML, XML).
MVC (Model-View-Controller)
Архитектурный паттерн: разделяет модель, представление и логику взаимодействия.
AOP (Aspect-Oriented Programming)
Парадигма разделения бизнес-кода и сквозной (служебной) логики с помощью аспектов.
Advice
Код сквозной логики; бывает Before, AfterReturning, AfterThrowing, After (finally), Around.
Pointcut
Выражение, определяющее, к каким joinpoint применяется advice.
CGLIB-прокси
Создаёт подкласс целевого класса; используется, когда нет интерфейса.
JDK Dynamic Proxy
Создаёт прокси-объект, реализующий интерфейсы целевого класса.
Filter
Компонент сервлет-контейнера; перехватывает HTTP-запросы/ответы до/после сервлета.
Listener
Слушатель жизненного цикла приложения, сессии или запросов; реагирует на события сервлет-контейнера.
Interceptor (Spring MVC)
Перехватывает вызовы контроллеров; выполняет pre- и post-обработку.
HTTP идемпотентность
Свойство запроса, при котором повторное выполнение не изменяет состояние сервера (GET, PUT, DELETE и др.).
REST
Стиль архитектуры веб-сервисов;
6 правил реста:
1. клиент сервер - клиент и сервер должны быть разделены и общаться между собой запросами, чаще всего хттп запросами
2. отсутствие состояние - вся нужная информация находится в запросе
3. кэширование - ответы сервера должны явно указывать, можно ли их кэшировать
4. единый интерфейс - использование хттп для запросов
5. многоуровневая система -архитектура может быть многоуровневой, тк клиент. не видит с каким именно сервером он общается
6. код по требованию, сервер может передать код клиенту и тот его ввполнит
SOAP
Протокол обмена XML-сообщениями (Envelope/Header/Body/Fault) с контрактом WSDL и строгой схемой.
UsernamePasswordAuthenticationFilter
Фильтр Spring Security, принимающий логин/пароль и создающий Authentication.
Authentication
Объект, представляющий учётные данные пользователя и его права.
UsernamePasswordAuthenticationToken
Реализация Authentication для логина/пароля.
AuthenticationManager
Интерфейс, отвечающий за аутентификацию; реализуется ProviderManager.
AuthenticationProvider
Поставщик конкретной логики аутентификации; использует UserDetailsService.
UserDetailsService
Интерфейс, загружающий пользователя из БД и возвращающий UserDetails.
UserDetails
Модель пользователя в Spring Security: логин, пароль, authorities, активности.
AccessDecisionManager
Принимает решение об авторизации, анализируя Authentication и требуемые права.
AuthenticationSuccessHandler
Класс-обработчик успешной аутентификации.
AuthenticationFailureHandler
Класс-обработчик неуспешной аутентификации.