Spring и Hibernate на собеседовании: что нужно знать


## Spring Core

### Что такое Dependency Injection?

DI — паттерн, при котором зависимости передаются извне, а не создаются внутри объекта. В Spring реализуется через конструктор или сеттер.

### Bean scopes

— singleton — один экземпляр на контекст
— prototype — новый экземпляр при каждом запросе
— request — на HTTP-запрос
— session — на сессию

### @Component vs @Service vs @Repository vs @Controller

Все это специализации @Bean:
— @Component — generic
— @Service — business logic
— @Repository — data access
— @Controller — web

## Spring Boot

### Starter’ы

Это зависимости, которые автоматически настраивают приложение (spring-boot-starter-web, data-jpa).

### Встроенный сервер

Spring Boot использует встроенные Tomcat/Jetty/Undertow.

## Hibernate

### Entity states

— Transient — новый объект, не в Persistence Context
— Persistent — в Persistence Context, синхронизирован с БД
— Detached — отсоединён от Persistence Context
— Removed — удалён

### N+1 problem

Проблема, когда один запрос к БД порождает N дополнительных запросов. Решение: fetch join, @EntityGraph, @BatchSize.

**Читайте также:**


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *