← Назад к вопросам

Какая последняя версия Spring Boot?

2.3 Middle🔥 201 комментариев
#Spring Boot и Spring Data#Spring Framework

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Какая последняя версия Spring Boot?

На момент начала 2025 года последняя версия Spring Boot — 3.4.x с рекомендацией использовать 3.3.x или 3.4.x для новых проектов.

Версии Spring Boot

Текущие активные версии

ВерсияReleaseEnd of LifeJavaСтатус
3.4.xДекабрь 2024Декабрь 202617+🟢 Текущая
3.3.xМай 2024Май 202617+🟢 LTS
3.2.xДекабрь 2023Декабрь 202517+🟡 Поддержка
3.1.xМай 2023Май 202517+🟡 Поддержка
3.0.xНоябрь 2022Ноябрь 202417+🔴 Окончена
2.7.xМай 2022Май 20278+🟢 LTS

История версий

Spring Boot 1.x (2014-2018)
 └─ Конец жизни

Spring Boot 2.x (2018-2024)
 ├─ 2.5.x - 2.6.x (Классические версии)
 ├─ 2.7.x (LTS - последняя в 2.x)
 └─ Поддержка до 2027 года

Spring Boot 3.x (2022-настоящее)
 ├─ 3.0.x - 3.2.x (Миграция на Java 17+)
 ├─ 3.3.x (LTS версия)
 ├─ 3.4.x (Текущая стабильная)
 └─ Поддержка до 2026-2027

Spring Boot 3.4 - главные улучшения

1. Native Image Support (улучшения)

// Spring Boot 3.4 лучше работает с GraalVM Native Image
// Быстрее загружается, меньше памяти

// Раньше (Spring Boot 2.x):
// - Время запуска: 5-10 секунд
// - Память: 256MB+

// Теперь (Spring Boot 3.4):
// - Время запуска: 50-100ms
// - Память: 50-100MB

2. Spring 6.1 Features

// Улучшенный работа с данными
@Service
public class UserService {
    // Spring Data улучшил проекции
    interface UserProjection {
        String getName();
        String getEmail();
    }
    
    public List<UserProjection> getAllUsers() {
        // Более эффективные запросы
        return userRepository.findAllProjectedBy();
    }
}

3. Улучшения Performance

// Lazy initialization для бинов
@Configuration
public class AppConfig {
    @Bean
    @Lazy  // Создаётся только при первом использовании
    public ExpensiveService expensiveService() {
        return new ExpensiveService();
    }
}

4. Docker Compose Support

# compose.yml теперь встроена поддержка
services:
  postgres:
    image: postgres:16
    environment:
      POSTGRES_DB: myapp
      POSTGRES_PASSWORD: password

  redis:
    image: redis:7
// Spring автоматически подключится
@Service
public class DataService {
    @Autowired
    private JdbcTemplate jdbcTemplate;  // Подключится к Postgres
    
    @Autowired
    private RedisTemplate redisTemplate;  // Подключится к Redis
}

Spring Boot 2.7 vs 3.4

Главное отличие: Java версия

// Spring Boot 2.7
// Java 8, 11, 17 поддерживает
// Старые паттерны работают

// Spring Boot 3.x
// Требует Java 17+
// Используется новый синтаксис Java

// Например, Record classes (Java 16+)
public record UserDTO(
    String id,
    String name,
    String email
) {}

Migration: 2.7 → 3.4

<!-- Было (2.7): -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.18</version>
</parent>

<properties>
    <java.version>11</java.version>
</properties>

<!-- Стало (3.4): -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.4.0</version>
</parent>

<properties>
    <java.version>17</java.version>
</properties>

Зависимости изменились

<!-- Spring Boot 2.7 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Включает старые javax.* пакеты -->

<!-- Spring Boot 3.4 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Использует новые jakarta.* пакеты -->
// Spring Boot 2.7:
import javax.servlet.http.HttpServletRequest;
import javax.persistence.Entity;

// Spring Boot 3.4:
import jakarta.servlet.http.HttpServletRequest;
import jakarta.persistence.Entity;

Какую версию выбрать для нового проекта?

✓ Выбрать Spring Boot 3.4 если:

  • Новый проект
  • Нужны новые фичи Spring
  • Команда готова к Java 17+
  • Нужна длительная поддержка
  • Хотите Native Image
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.4.0</version>
</parent>

✓ Остаться на Spring Boot 2.7 если:

  • Есть зависимость от Java 8-11
  • Легаси код, который сложно мигрировать
  • Нет критичных требований
  • Поддержка важнее новизны
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.18</version>
</parent>

Roadmap Spring Boot

2025:
├─ Spring Boot 3.5 (Q2 2025)
│  └─ Улучшения GraalVM
│  └─ Новые функции Spring 6.2
├─ Spring Boot 3.4 LTS (до 2026)
└─ Spring Boot 2.7 (поддержка до 2027)

2026:
├─ Spring Boot 3.6
├─ Spring Boot 3.5 LTS
└─ Конец поддержки Spring Boot 3.3

2027:
├─ Spring Boot 4.0 (планируется)
└─ Конец поддержки Spring Boot 2.7

Как проверить версию вашего проекта

# Maven
mvn --version

# Или в pom.xml
cat pom.xml | grep -A1 "<version>"

# Gradle
./gradlew --version
cat build.gradle | grep 'id.*spring-boot'

# Runtime
java -jar app.jar --version

Примеры конфигурации

Spring Boot 3.4 + Java 17

@SpringBootApplication
public class Application {
    
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
    
    // Record (Java 16+) вместо DTO класса
    public record User(
        String id,
        String name,
        String email
    ) {}
    
    // Text blocks (Java 13+)
    @GetMapping("/info")
    public String getInfo() {
        return """
            Spring Boot 3.4
            Java 17+
            """.trim();
    }
}

Итог

На 2025 год:

  • Текущая версия: Spring Boot 3.4.x
  • Рекомендуемая: 3.4.x или 3.3.x LTS
  • Требование: Java 17+ для Spring Boot 3.x
  • Конец поддержки 2.7: 2027 год

Для новых проектов выбирайте Spring Boot 3.4, если нет причин придерживаться 2.7.