Вопросы по Spring и Spring Boot
Spring изнутри: контейнер, прокси, автоконфигурация, JPA и транзакции, Security и микросервисы. Помогает отвечать на вопросы «как это работает под капотом» и находить баги на код-ревью.
Проверьте себя: тест по Spring
20 вопросов, 10 минут, уровень junior, middle или senior
IoC и внедрение зависимостей
Контейнер, ApplicationContext, способы внедрения, @Autowired, @Qualifier, @Primary и циклические зависимости.
Урок: IoC и внедрение зависимостей в Spring 7 минБины: скоупы и жизненный цикл
Singleton и prototype, web-скоупы, @PostConstruct, BeanPostProcessor и порядок создания бинов.
Урок: Бины: скоупы и жизненный цикл 7 минAOP и прокси
Аспекты, advice и pointcut, JDK Proxy и CGLIB, self-invocation и что не перехватывается.
Урок: AOP и прокси в Spring 8 мин- @Around без proceed
- Порядок ретрая и транзакции
- @Async через this
- @Cacheable при вызове изнутри класса
- final-класс с @Transactional
- final-метод и CGLIB
- Термины AOP
- Что не перехватывает прокси
Ещё 10 вопросов и задач
Spring Boot и автоконфигурация
Стартеры, @SpringBootApplication, @Conditional, свойства и профили, Actuator.
Урок: Spring Boot и автоконфигурация 7 минSpring MVC и REST
DispatcherServlet, контроллеры, валидация, обработка ошибок, фильтры и интерсепторы.
Урок: Spring MVC и REST 7 минSpring Data JPA
Репозитории, производные запросы, @Query, пагинация, проекции и аудит.
Урок: Spring Data JPA: репозитории и запросы 7 минHibernate: N+1, lazy, кеш
Состояния сущностей, контекст персистентности, ленивая загрузка, N+1, кеши первого и второго уровня.
Урок: Hibernate: N+1, ленивая загрузка, кеш 8 минТранзакции и @Transactional
Как работает @Transactional, распространение, изоляция, откат и типичные ловушки.
Урок: Транзакции и @Transactional 8 мин- Отправить письмо после коммита
- Транзакция и другой поток
- Откат на checked-исключении
- HTTP-вызов внутри транзакции
- Откат на checked-исключении
- Виды распространения транзакций
- Правила отката
- Где Spring хранит текущую транзакцию
Ещё 11 вопросов и задач
- Propagation и поведение
- @Transactional на private-методе
- Что даёт readOnly = true
- readOnly и маршрутизация на реплику
- REQUIRES_NEW и пул соединений
- REQUIRES_NEW через this
- Код-ревью: оплата заказа
- UnexpectedRollbackException
- Когда нужен REQUIRES_NEW
- Как работает @Transactional
- Исключение поймано внутри метода
Spring Security
Цепочка фильтров, аутентификация и авторизация, JWT и OAuth2, CSRF и CORS.
Урок: Spring Security 8 минТестирование в Spring
@SpringBootTest, слайсы @WebMvcTest и @DataJpaTest, MockMvc, Testcontainers и кеш контекста.
Урок: Тестирование Spring-приложений 7 минМикросервисы и Spring Cloud
Конфигурация, обнаружение сервисов, шлюз, отказоустойчивость, наблюдаемость.
Урок: Микросервисы и Spring Cloud 8 минKafka в Spring
Топики и партиции, группы потребителей, гарантии доставки, Spring Kafka и обработка ошибок.
Урок: Kafka в Spring 8 мин