Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.
← К каналу

🎛 Конфигурация Spring Boot: YAML, Профили и Секреты Хардкодить настройки (порты, пароли, URL-ы) в Java-коде - это моветон.

🎛 Конфигурация Spring Boot: YAML, Профили и Секреты

Хардкодить настройки (порты, пароли, URL-ы) в Java-коде - это моветон. Если вам нужно поменять порт сервера, вы не должны перекомпилировать приложение.

Spring Boot следует принципу: "Код отдельно, настройки отдельно".

1️⃣ Properties vs YAML

По умолчанию Spring создает application.properties. Это старый формат (ключ=значение).
Весь мир переходит на YAML (.yaml или .yml). Он читабельнее и поддерживает иерархию.

Было (.properties):

spring.datasource.url=jdbc:postgresql://localhost/db
spring.datasource.username=admin
server.port=8080

Стало (.yaml):

server:
port: 8080
spring:
datasource:
url: jdbc:postgresql://localhost/db
username: admin

Меньше дублирования, глазам приятнее.

2️⃣ Как достать настройки в коде?

Способ А: Простой (@Value)
Подходит для точечных настроек.

@Value("${server.port}")
private int port;

Способ Б: Профессиональный (@ConfigurationProperties)
Если настроек много (например, настройки почты или API), лучше собрать их в отдельный класс. Это дает типизацию и проверку данных!

@ConfigurationProperties(prefix = "mail")
public record MailConfig(String host, int port, String username) {}

Теперь вы просто внедряете MailConfig в свои сервисы, как обычный бин.

3️⃣ Профили (Profiles) - Киллер-фича

На локальной машине у вас H2 база данных, а на продакшене - PostgreSQL. Как не менять конфиги вручную?
Используйте Профили.

Вы создаете несколько файлов рядом с основным application.yaml:

🔴 application-dev.yaml (для разработки)
🔴 application-prod.yaml (для боевого сервера)

В основном файле вы указываете, какой профиль активен по умолчанию:

spring:
profiles:
active: dev # По умолчанию грузим dev-настройки

А при запуске на сервере вы просто передаете флаг, и Spring подхватит нужный файл, перетерев дефолтные настройки:
java -jar app.jar -Dspring.profiles.active=prod

4️⃣ Секреты (Никаких паролей в Git!)

Самая страшная ошибка - закоммитить application-prod.yaml с паролем от боевой БД в репозиторий. ☠️

Правило: В файлах храним только дефолтные/безопасные значения. Реальные пароли передаем через Переменные Окружения (Environment Variables).

Spring Boot имеет строгий приоритет загрузки. Переменные окружения OS имеют более высокий приоритет, чем файлы.

🔴 В файле: spring.datasource.password=secret
🔴 В переменной ОС: SPRING_DATASOURCE_PASSWORD=SuperSecurePass123

Spring увидит переменную в системе и проигнорирует то, что написано в файле. Ваш секрет в безопасности.

🔥 Итог

1. Используйте YAML вместо properties.
2. Группируйте настройки через @ConfigurationProperties.
3. Разделяйте среды через Профили (dev, test, prod).
4. Никогда не храните боевые пароли в файлах. Используйте ENV vars.

#SpringBoot #Configuration #YAML #DevOps #BestPractices

👉 @BookJava
← Предыдущий пост 🚑 Global Exception Handling: Красиво падаем Представьте: пользователь запрашива… Следующий пост → 🧪 Тестирование в Spring Boot: Спите спокойно Глобально тесты делятся на два лаг…
Другие главы канала «Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.»
Выберите главу, чтобы продолжить чтение
Все посты →
Глава от 04.05.2026
📝 Советы по оптимизации Java кода: избавляемся от лишнего Привет, друзья! Сег…
👁 168 просмотров
Глава от 03.05.2026
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 ht…
👁 206 просмотров
Глава от 01.05.2026
Stream API: Обзор и Основные Методы Stream API – мощный инструмент для обрабо…
👁 330 просмотров
Глава от 30.04.2026
🔥 Разбираем CompletableFuture в Java: Асинхронность без боли Всем добрый вече…
👁 411 просмотров
Глава от 29.04.2026
📌 Java: Как работает volatile и когда его использовать? 🔥 Что делает volatile?…
👁 444 просмотров
Глава от 28.04.2026
В чем разница между Iterator и ListIterator? — Iterator может итерироваться тол…
👁 433 просмотров
Удалить пост или канал с МАКСОТЕКИ
Заявка подтверждается через бота Макс: нужно быть администратором канала и добавить бота МАКСОТЕКИ в администраторы. После проверки канал или конкретный пост скрывается с сайта.
Удалить этот пост Удалить канал
🔍
Архив всех постов Макс
Поиск по тексту среди 3,342,351 постов из 200,193 каналов. Фильтры по дате, видео, репостам и удалённым публикациям.
1 ₽ — 7 дней доступа
далее 490 ₽/мес
Получить доступ за 1 ₽
или войти, если уже есть аккаунт

Связанные темы в других каналах

Каналы из той же тематики, где часто появляются близкие сюжеты
Вся тема →
@matematik_andrei_channel
Математик Андрей
Предзапись на следующий год https://clck.ru/3SnPXu Получить консультацию о курсах: https://max.ru/tochka_school_sales_bot Задать вопрос, если уже учитесь у нас:
👥 150 029 · +9 073/7д
@sferum_channel
Сферум. Главное
Официальный канал Сферума в MAX. Самая важная информация о сервисе sferum.ru
👥 84 177 · +11/7д
@obr_mo
Образование Подмосковья
Новости об образовании в Московской области
👥 77 633 · -347/7д
@Moscow_school
Московское образование
Успех начинается здесь! Для СМИ: press-donm@mos.ru Сайт: mosobr.shkolamoskva.ru ВК: vk.com/educationdep ТГ: https://t.me/depobr_mos
👥 69 370 · -174/7д
@iqkot
Образование
Связь: https://clck.ru/3RbNj7
👥 68 412 · -14 286/7д
@bestch
Культура речи • Саморазвитие
Канал для тех, кто хочет удивлять друзей своей эрудированностью. Реклама: clck.ru/3R8TA9 Биржа: https://telega.in/m/bestch Менеджеры: clck.ru/3QxNG7 Русский язык Образо…
👥 60 690 · -675/7д

Популярные посты канала «Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.»

🚀 В чем разница между HashMap и Hashtable в Java? Если вы работаете с Java, то наверняка сталкивались с HashMap и Hashtable. Оба использу…
👁 2 274 просмотров
map() vs flatMap(): Битва трансформеров Оба метода находятся в конвейере (Intermediate operations) и нужны для преобразования данных. Но ра…
👁 2 271 просмотров
🚑 Global Exception Handling: Красиво падаем Представьте: пользователь запрашивает ID, которого нет. 🔴 Плохой сценарий: Сервер выплевывает …
👁 2 269 просмотров
🎁 Optional: Лекарство от NullPointerException Тони Хоар назвал изобретение null своей "ошибкой на миллиард долларов". NullPointerException …
👁 2 265 просмотров
🧩 Микросервисы: Укрощение хаоса (Spring Cloud) Когда у вас один сервис, всё просто. Но когда их становится 10, 20 или 50, возникают вопросы…
👁 2 257 просмотров
💾 Spring Data JPA: SQL больше не нужен? Spring Data JPA это абстракция над Hibernate (который, в свою очередь, является реализацией JPA). …
👁 2 253 просмотров
🔮 Pattern Matching в Switch: Типизируй это! Помните этот бесконечный кошмар, когда вам приходит Object, и нужно понять, что внутри? Раньше …
👁 2 241 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 2 240 просмотров
📦 От Кода к Продакшену: JAR и Docker В старые времена (Java EE) процесс деплоя был адом: нужно было установить на сервер Tomcat, настроить …
👁 2 239 просмотров
🧵 Виртуальные потоки: Революция производительности Представьте, что вы строите высоконагруженный сервер. Раньше у вас было два пути: 1. Кл…
👁 2 238 просмотров
🧪 Тестирование в Spring Boot: Спите спокойно Глобально тесты делятся на два лагеря: 1. Unit-тесты (Модульные): Быстрые, изолированные. Про…
👁 2 224 просмотров
Java Records: Убийцы бойлерплейта Сколько раз вы создавали класс просто чтобы "перенести данные" из точки А в точку Б? Вы пишете 3 поля, а …
👁 2 224 просмотров
🎮 Анатомия REST Controller: Входящие и Исходящие Раньше, чтобы вернуть JSON, нужно было танцевать с бубном. В Spring Boot это делается "из …
👁 2 223 просмотров
🍃 Spring Boot: Магия или Логика? (IoC & Beans) Когда вы запускаете Spring-приложение, происходит магия: все нужные объекты создаются сами, …
👁 2 221 просмотров
🚀 Redis + Spring Cache: Турбо-наддув для бэкенда Самая медленная часть любого приложения это ввод-вывод (I/O). Поход в базу данных (Postgre…
👁 2 218 просмотров
🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https…
👁 2 216 просмотров
🔀 Switch Expressions: Прощай, break! Помните это чувство, когда забыл написать break в switch-case, и код пошел выполняться дальше, создав…
👁 2 215 просмотров
📨 Apache Kafka: Нервная система микросервисов Представьте, что вы заказали пиццу. • REST подход: Вы стоите у прилавка и смотрите на повара…
👁 2 207 просмотров
🏗 Порождающие паттерны: Как рождаются объекты? Создать объект просто: User u = new User(). А если у объекта 20 полей? А если нам нужен толь…
👁 2 206 просмотров
Spring Boot Tutorial | Полный курс В этом учебном пособии по Spring Boot рассказывается о том, как начать работу с Spring Boot и Java. 00:…
👁 2 205 просмотров
🏷 Темы и теги
#SpringBoot #Configuration #YAML #DevOps #BestPractices #spring boot #java #hibernate #docker #собеседование #микросервисы #Образование
📋 О канале Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.
Всё о Java Core, JVM, Multithreading и ООП. Гайды по Hibernate, Kafka, Docker, Kubernetes (K8s) и Microservices. Разбираем SQL, NoSQL и базы данных. Подготовка к интервью: Паттерны, System Design, LeetCode, Roadmap для Junior, Middle, Senior. Новости экосистемы: Kotlin, Android, Maven, Gradle, Git, CI/CD. Тестирование (JUnit, Mockito) и Best Practices разработки высоконагруженных систем.
📊 Аналитика канала «Java Разработка | Spring Boot Backend & Architecture. Программирование на Джава для Developer. IT Собеседования, Алгоритмы и Coding задачи. Уроки и курсы для роста в Tech.» ➡️ Перейти в канал Макс
Заявка в МАКСОТЕКА
📌 Данные подтянутся автоматически по ссылке на канал. Логотип необязателен — ускоряет проверку.
🖼 Перетащите картинку или выберите файл
PNG, JPG, WEBP · до 5 МБ
captcha

Нажимая кнопку, вы соглашаетесь на обработку данных.
Проверим и добавим канал в течение суток.