Spring Flashcards
Что такое Spring Framework?
Spring — это популярный Java-фреймворк для разработки приложений на основе Java, который предоставляет обширные возможности для внедрения зависимостей (DI), управления транзакциями, веб-разработки, обработки данных и интеграции с различными технологиями.
Что такое Inversion of Control (IoC) в контексте Spring?
IoC — это принцип, согласно которому управление зависимостями объекта передаётся внешнему контейнеру (например, Spring Container). В Spring IoC реализован через внедрение зависимостей (DI), когда зависимости передаются объекту извне, а не создаются внутри объекта.
Какие виды внедрения зависимостей существуют в Spring?
- Через конструктор: зависимости передаются через параметры конструктора.
- Через сеттеры/геттеры: зависимости устанавливаются через методы.
Что такое Spring Container?
Spring Container управляет жизненным циклом объектов (бинов) и их зависимостями. В основном, это ApplicationContext, который загружает конфигурации и управляет созданием бинов.
Что такое Bean в Spring?
Bean — это объект, который управляется Spring Container. Бины создаются, конфигурируются и уничтожаются контейнером, а также используются в приложении.
Как зарегистрировать Bean в Spring?
= Через аннотацию @Bean: используем в конфигурационном классе для создания бина.
= Через аннотацию @Component: используется на уровне класса для автоматического определения бина.
= Через XML-конфигурацию (менее распространено в современных приложениях).
Что такое @Autowired?
@Autowired — это аннотация, которая используется для автоматического внедрения зависимости в класс. Spring Container ищет подходящий бин для инъекции.
Как работает аннотация @Component?
Аннотация @Component указывает Spring, что данный класс должен быть автоматически обнаружен и зарегистрирован как бин в контексте при сканировании пакетов. Также есть специализированные аннотации:
@Controller
@Service
@Repository
Чем отличается @Component от @Bean?
@Component: используется для автоматического обнаружения и создания бинов при сканировании классов.
@Bean: используется для явного создания бина в конфигурационных классах.
Что такое AOP в Spring?
AOP (Aspect-Oriented Programming) — это парадигма программирования, которая позволяет разделять сквозные задачи (например, логирование, безопасность, управление транзакциями) от бизнес-логики. В Spring это реализовано через аспекты и аннотации.
Что такое Pointcut и Advice в AOP?
Pointcut: выражение, которое определяет, на какие методы или классы будет применяться аспект.
Advice: это действие, которое выполняется при достижении точки соединения (join point), например до или после вызова метода.
Какие типы Advice существуют в Spring AOP?
Before: выполняется до метода.
After: выполняется после метода.
Around: выполняется до и после метода.
AfterReturning: выполняется после успешного завершения метода.
AfterThrowing: выполняется после выброса исключения.
Как использовать аннотацию @Aspect?
Аннотация @Aspect используется для обозначения класса как аспекта в Spring AOP. Для этого нужно также включить обработку аспектов с помощью аннотации @EnableAspectJAutoProxy.
Как управлять транзакциями в Spring?
Spring предоставляет управление транзакциями через аннотацию @Transactional. Эта аннотация указывает, что метод или класс должны выполняться в транзакции, и в случае исключений транзакция будет откатана.
Какие уровни изоляции и распространения транзакций существуют в Spring?
Уровни изоляции: READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE.
Типы распространения (propagation): REQUIRED, REQUIRES_NEW, SUPPORTS, NOT_SUPPORTED и другие.