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 не будет опубликован. Обязательные поля помечены *