job4j.ru - Практика. Ревью. Результат.
771 subscribers
75 photos
186 links
О жизни в IT:
- Языки: Go, Rust, Java, Kotlin
- Технологии: PostgreSQL, Kafka
- Инфраструктура: Docker, Kubernetes
- Soft Skills: общение, интервью, карьера
Download Telegram
Channel name was changed to «О жизни в IT | Java | Kotlin | Карьера |»
🔥 Новые уроки в блоке DevOps для Java-программистов!

Теперь вы можете прокачать свои навыки работы с Docker и Jenkins с помощью новых уроков:

- Виртуальные машины | Контейнеры | Архитектура Docker [#505356]
- Образы | Контейнеры | Основные команды [#505357]
- Создание Docker-образа | Dockerfile [#505358]
- Многоэтапная сборка [#505359]
- Слои Docker | Оптимизация сборки [#505360]
- Создание образа Docker внутри Jenkins [#505361]

💥 Стоимость блока со скидкой: 7990 рублей
👨‍💻 Обучение на платформе 👉 [http://job4j.ru](http://job4j.ru)

Развивайтесь с нами и осваивайте современные инструменты DevOps! 🚀
#Java #DevOps #Docker #Jenkins
🔥6
Прокачай мозги: спортивные принципы для твоей учёбы 💪
Спорт развивает многие важные качества - настойчивость, умение добиваться целей и не сдаваться, несмотря на поражения. Почему бы не взять эти принципы на вооружение для твоей успешной учёбы?

🔹 Итак, качество номер один в спорте, без чего никакие достижения невозможны - это дисциплина.
Заставлять себя делать то, что нужно, изо дня в день, выдерживать долгое постоянное напряжение, маленькими шагами наращивать форму и приближаться к своей цели. Все это легче сделать, когда тренировки или учёба встроены в твою рутину. Определи время, когда ты будешь учиться, лучше всего с утра, и неуклонно придерживайся своего режима. Ты удивишься, как незаметно для себя, прикладывая небольшие, но регулярные усилия, ты пройдёшь значительный путь вперед.

🔹 Как в спорте нельзя сразу поднять большой вес, так и в учебе не нужно пытаться освоить все программирование за 3 дня.
Не получится взять вершину с наскока. Ты не должен стремиться нестись, как Феррари, двигайся как танк, медленно, но неукротимо 😎, проходя через любые препятствия.

🔹 А препятствия будут, жизнь не стоит на месте, и подкинет сложностей, будь к этому готов.
И в этом случае не отступай со словами "если я не смог сделать это с первой попытки, значит, не стоит делать этого вообще". Упал - вставай, и делай вторую попытку, третью, четвертую. Пока не одержишь победу. Включи свой азарт победителя, положи джаву на лопатки 👊.

🔹 Заложи в свое расписание качественный отдых.
Твоему мозгу, как и твоему телу, нужно перезагружаться. Отдыхать лучше с помощью той деятельности, которая противоположна тому, как ты работаешь. Подолгу учишься дома в четырёх стенах? Проведи день на природе, на свежем воздухе, разгрузи мозг, напряги тело. Кстати, ты знал, что физическая активность помогает твоему мозгу лучше работать? Мозг активнее снабжается кислородом и питательными веществами.

🔹 Лучше провести плохую тренировку, чем не прийти на неё вообще.
Позанимайся 15-20 минут, реши одну задачу, это лучше, чем не сделать совсем ничего.

🔹 Во время тренировок в тренажёрном зале применяется правило - последний подход нужно продолжать до тех пор, пока мышцы не пойдут в отказ.
Так мы можем добиться более быстрого роста мышц. Не жалей себя, ты можешь больше, чем тебе кажется. И ещё один раз 💪 Когда кажется, что больше не можешь, прочитай ещё одну страницу, реши ещё одну задачу.

🔹 Помни, что путь к мастерству лежит через постоянные тренировки.
Практикуйся. Пиши километры кода. Создавай прочные нейронные связи в своём мозгу.

🔹 И главное - не сдавайся.
Будь упорным, чтобы ничто не могло заставить тебя свернуть с твоего пути. Ты выбрал свою цель, значит, победа будет твоей 🏆.
🔥19👍4❤2
🎉 С Наступающим 2025 Годом! 🎉

Дорогие друзья!

Поздравляем с наступающим Новым годом и предлагаем начать 2025 год с выгодными покупками! В честь праздника — СКИДКА 25% на весь курс или отдельные уровни.

http://job4j.ru/

✨ Акция действует с 25 по 31 декабря 2024 года ✨
🔥13
Друзья!

👋 Напоминаю, кто приобрёл блок DevOps, большая просьба выполнять и выкладывать задания!
Несколько дней назад я завершил тему Docker и не вижу ваших решений.

---

А пока немного освежим в памяти основную концепцию для тех, кто проходит тему самостоятельно.

# Что такое слои в Docker?

Слои в Docker — это ключевая концепция, где каждый шаг в Dockerfile (например, FROM, RUN, COPY) создаёт отдельный слой.

🔑 Это позволяет:
- 🔄 Кэшировать неизменённые слои и ускорять сборку.
- ⏩ Избегать лишней работы: если изменился только один слой, пересобираются только он и последующие.

---

### Пример Dockerfile: сборка Java-приложения через Gradle

# Этап сборки приложения
FROM gradle:7.6.1-jdk11 as build
WORKDIR /app

# Сначала копируем только файлы Gradle для кэширования зависимостей
COPY build.gradle settings.gradle ./
RUN gradle dependencies --no-daemon

# Затем добавляем остальной код и выполняем сборку
COPY . .
RUN gradle build --no-daemon

# Этап формирования финального образа
FROM openjdk:11-jre-slim
COPY --from=build /app/build/libs/myapp.jar /myapp.jar
ENTRYPOINT ["java", "-jar", "/myapp.jar"]


---

### Оптимизация

✅ Использование кэша зависимостей
Команда RUN gradle dependencies позволяет загрузить все зависимости на основе build.gradle и settings.gradle до копирования кода приложения.

🟢 Преимущество: если код меняется, но зависимости остаются прежними, слой с зависимостями берётся из кэша. Это значительно ускоряет сборку.

---

### Нужна ли команда `clean`?

⚠️ В Docker-образе команда `clean` обычно не нужна.
Сборка выполняется в чистой среде, где нет артефактов от предыдущих сборок. Использование clean добавит лишний шаг и замедлит процесс.

Рекомендуем просто использовать:
gradle build


---

### Как ускорить сборку с помощью BuildKit?

BuildKit — это усовершенствованная система сборки Docker.

🔧 Как включить BuildKit:
DOCKER_BUILDKIT=1 docker build -t myapp .


✨ Преимущества BuildKit:
- Параллельное выполнение независимых шагов.
- Более эффективное кэширование слоёв.
- Возможность отслеживания времени выполнения шагов с флагом:

  --progress=plain


Пример команды:
export DOCKER_BUILDKIT=1 
docker build --progress=plain -t myapp .


---

🔥 Хотите стать экспертом в DevOps?
На курсе [DevOps от Job4j](http://job4j.ru/) вы изучите Docker, Kubernetes, CI/CD и другие ключевые технологии!
Практические задания и актуальные примеры помогут вам углубить знания и стать востребованным специалистом.

💼 Присоединяйтесь! 💡
🔥9✍2👍1
Откуда берутся задания для курса?

Часто меня спрашивают: откуда я беру задания для курса? Большинство задач в курсе — это адаптированные кейсы из реальных боевых проектов. Например, одна из задач родилась буквально из решений учеников.

В блоке Spring Core | AOP студенты работают над проектом «Телеграм-бот дневник настроения». Пользователи отмечают свое настроение каждый день, а бот может подбадривать их или награждать достижениями, если хорошее настроение держится долго.

На первый взгляд задача кажется простой — найти самую длинную последовательность положительных дней. Но есть нюансы:
- Пользователь может пропускать дни, не отмечая настроение.
- Или отмечать настроение несколько раз в день, что может исказить логику подсчета.

Эта задача усложняется необходимостью корректной обработки данных и применения алгоритма двух указателей.

Мы решили добавить её в раздел упражнений!
Попробуйте решить её сами. А если захотите, можете опубликовать своё решение на платформе — получите код-ревью и улучшите свои навыки.

👉 https://job4j.ru/profile/topics/206/task_code/565/new_task
*Не забудьте авторизоваться на платформе перед началом работы!*

Ваши решения — это новые идеи и вдохновение для дальнейших задач. Ждём ваши варианты! 🚀
🔥13
💻 Друзья!

Я продолжаю работу над блоком DevOps и с радостью делюсь обновлениями! 🚀
Теперь доступны новые уроки по теме миграции баз данных с использованием Liquibase:

1️⃣ Введение в миграцию баз данных | Liquibase
📌 [#505362]

2️⃣ Liquibase в Spring Boot
📌 [#505363]

💡 Готовьтесь к практическим заданиям и освоению мощного инструмента для управления изменениями в базе данных.

Жду ваших решений и вопросов! 🔥
🔥6❤1
ООП и 16 времен в английском

А вы знали, что изучение программирования и иностранного языка имеет много общего? 🤔
Во-первых, мы задействуем одни и те же участки мозга, а во-вторых, допускаем одинаковые ошибки в методике изучения.

В этой статье поговорим о том, как нужно учиться.

Личный опыт 📚
Когда я создавал курс по программированию, то не разбирался, какую же методику обучения выбрать. Я действовал по аналогии: как делали другие, как меня учили в школе и вузе, на других курсах. В целом, я использовал то, что мне помогало.

Со временем оказалось, что даже лучшие методы обучения подходят не всем. Однако я заметил строгую закономерность (или, лучше сказать, иррациональность) поведения "трудных" студентов.

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

Чаще всего это связано с зацикленностью или с излишним копанием в одной теме.

Пример: изучение основ программирования
Первые темы в программировании касаются циклов, массивов, операторов ветвления. Здесь сложностей обычно не возникает — это линейное, последовательное программирование.

👉 По аналогии с иностранным языком: никто долго не зацикливается на алфавите. Почему? Потому что самое интересное — это конструкции языка, а лучше — его грамматика (сарказм).

В программировании есть такая "алфавитная" тема — это ООП. Именно на ней студенты часто "залипают" и остаются на начальном уровне.

ООП: медленно, но уверенно 🌀
ООП — это сложно.
ООП — это на всю жизнь! 😄 Не нужно пытаться освоить его за один день, месяц или даже год.
Смакуйте его! Каждый раз, когда вы замечаете новые возможности ООП, радуйтесь этому.

Мой опыт из художественной школы 🎨
Когда я учился в художественной школе, нас ругали за зацикленность на одних элементах картины.

> "Набросайте фон, добавьте элементы окружения, смотрите на работу в контексте, а не как на отдельные части," — говорил наш мастер.

Осознание через контрасты 🧘
В йоге тоже указывают на это явление: объект можно осознать только в контрасте с другими объектами.

И, наконец, пример из английской грамматики:
"Я выучу все времена и стану fluent! Что бы это ни значило... 😅"

Как же быть? 🌟

1. Не зацикливайтесь.
2. Возвращайтесь к пройденному материалу.
3. Используйте спиралевидный метод обучения:
- Пройдите основы.
- Перейдите к новой теме.
- Вернитесь к первой теме и осознайте её глубже в контексте новых знаний.
- Повторяйте это снова и снова, поднимаясь "по спирали" выше и выше! 🚀

Такой подход поможет не только в программировании, но и в изучении любого другого навыка! ✨
👍17🔥7
Настройки окружения через Gradle плагин dotEnv

В этой статье расскажем, как удобно хранить и управлять настройками окружения для разных сред (локальный, develop, test, stage, production) с помощью Gradle и плагина dotenv.

Зачем это нужно?
Обычно у нас есть несколько стендов разработки, каждый из которых требует своих настроек. Прямое изменение настроек в build.gradle или других конфигурационных файлах неудобно. Решением этой проблемы является использование проекта dotenv, который позволяет хранить ключи и другие данные в простом текстовом файле с расширением .env.

Подключение плагина
Для начала добавьте плагин в ваш файл build.gradle.kts:

id("co.uzzu.dotenv.gradle") version "4.0.0"


Создание файла настроек
Создайте файл env/.env.local и добавьте в него необходимые параметры:

DB_URL=jdbc:postgresql://localhost:5432/job4j_devops
DB_USERNAME=postgres
DB_PASSWORD=password


Указание пути к файлу
Добавьте настройку в gradle.properties, чтобы указать путь к вашему .env файлу:

dotenv.filename=env/.env.local


Создание задачи для демонстрации
Для демонстрации работы создадим задачу profile в build.gradle.kts:

tasks.register("profile") {
doFirst {
println(env.DB_URL.value)
}
}


Запустите задачу командой:

gradle profile


Результат:

> Task :profile
jdbc:postgresql://localhost:5432/job4j_devops


Создание нового файла настроек для другого окружения
Создайте новый файл env/.env.develop:

DB_URL=jdbc:postgresql://develop:5432/job4j_devops
DB_USERNAME=postgres
DB_PASSWORD=password


Запустите задачу с изменением пути к файлу через параметр:

gradle profile -P"dotenv.filename"="env/.env.develop"


Результат:

> Task :profile
jdbc:postgresql://develop:5432/job4j_devops


Ключ -P позволяет гибко изменять окружение, подставляя нужные файлы конфигурации.


🔧 Узнать больше о настройках и DevOps можно на нашем курсе! Присоединяйтесь и улучшайте свои навыки в управлении окружениями! #Gradle #DevOps #dotenv #Kotlin #Программирование
🔥5⚡2
Новые уроки в блоке DevOps
❤️ Наслаждайтесь.

4. Liquibase | Миграция баз данных

Введение в миграцию баз данных | Liquibase [#505362]
Liquibase в Spring boot [#505363]
Liquibase в Gradle [#505364]
Структура и написание скриптов миграций [#505365]
Liquibase:rollback [#505366]
Настройки окружения | dotEnv [#505367]
Обновление базы данных в pipeline [#505368]

Следующая тема: Testcontainers 🤘.
👍12👏1
Тайные взгляды на гору Фудзи

Несколько лет назад я прочитал книгу Виктора Пелевина «Тайные взгляды на гору Фудзи». Один из главных персонажей книги — Дамиан Улитин. Его бизнес-идея заключалась в продаже счастья. Как обычно у Пелевина, все книги переплетены с концепцией буддизма, поэтому методы, которые использует Дамиан для предоставления счастья, по сути являются буддистскими практиками. Сюжет книги меня не особо интересовал, а вот методы, которые использовали герои, взбудоражили моё сознание. Понятно, что книга — это художественный вымысел, но, как оказалось, некоторые описанные в ней способы можно воспроизвести на практике. 🤔

В этой статье я хотел бы поделиться с вами одним из таких способов, которые позволяют почувствовать счастье. Сначала давайте разберёмся, что же такое счастье. Если упростить, можно сказать, что это физиологический процесс выработки специальных гормонов (или, точнее сказать, нейромедиаторов), которые дают нам возвышенные ощущения.

Первый способ, который предлагал Дамиан Улитин, — это «перенестись» в прошлое и изменить ход событий. Возможно, что эти события были ключевыми. Нам, конечно, ничего менять не надо, а вот «перенестись» как раз и нужно. Чтобы это сделать, нужно воспользоваться чувственной памятью: вспоминать события, которые сохранились в сознании и связаны с органами восприятия — зрением, слухом, осязанием, обонянием, вкусом.

В детстве у нас в семье был проигрыватель. Я помню, что часто его слушал, но смог вспомнить только несколько произведений. Сначала мне не удалось их найти, но потом удача улыбнулась, и я отыскал целый сайт, на котором можно найти все пластинки в аудиоформате. Моему восторгу не было предела! Потрясающее ощущение — как будто переносишься в детство: все жизненные сложности уходят на второй план, нет никаких обязательств — истинный восторг. Особенно важно, что этим состоянием можно делиться. Первое, что я захотел сделать, — это поделиться этим счастьем со своими детьми.

Первой пластинкой стала «Алли-Баба и сорок разбойников» (
[https://mp3tales.info/tales/?id=13](https://mp3tales.info/tales/?id=13) ).

Танцы и песни воцарились на полтора часа в нашем доме! 🏠🎶

Теперь я хотел бы поделиться этим и с вами:

1. «Чёрная курица»
[https://mp3tales.info/tales/?id=52](https://mp3tales.info/tales/?id=52)

2. «Тайна синей пантеры»
[https://mp3tales.info/tales/?id=397](https://mp3tales.info/tales/?id=397)

3. «Зайка-почтальон»
[https://mp3tales.info/tales/?id=459](https://mp3tales.info/tales/?id=459)

4. «Жили-были ёжики»
[https://mp3tales.info/tales/?id=465](https://mp3tales.info/tales/?id=465)

Обратите внимание, что в описании приводится оригинальная обложка пластинки.

В конце добавлю немного горчинки в этот «пост счастья». Как оказалось, проигрыватели в те времена были далеко не у всех. Все мои знакомые сказали, что слышат эти сказки в первый раз и такого восторга не испытывают. Поэтому этот метод нужно адаптировать индивидуально. К счастью, моим детям эти сказки понравились, и теперь я могу вместе с ними «перенестись» в своё детство. 💫👨‍👩‍👧‍👦✨

А что у вас вызывает ностальгию и приносит ощущение счастья? Поделитесь в комментариях своими любимыми детскими воспоминаниями или ссылками на аудиосказки, пластинки, книги и другие «машины времени» из прошлого! Ведь иногда именно в простых радостях детства мы находим ключ к счастью во взрослом возрасте.

Ждём ваших историй! ☀️✨
👍11❤6🥰1
2025: закат эры мидл-программистов

Чтобы поддерживать свой уровень английского, я взял за правило каждый день смотреть небольшие ролики на английском языке по 10–15 минут, не больше.
Сегодня мне попался на глаза ролик про IT.
Можете потренироваться вместе со мной: https://www.youtube.com/watch?v=WSvFEsgS2pc&list=LL&index=2.

В ролике дядя Степа дает аналитику высказываний Марка Цукерберга о будущем карьеры программистов. Утверждение касается полной замены программистов некоторых типов: алгоритмистов и специалистов по структурам данных.

Я проявил большой интерес к этому ролику, потому что идеи гражданина Стефана полностью совпадают с моим видением происходящего.
Действительно, AI оказывает огромное влияние на все индустрии, не только IT. Но если мы посмотрим в ретроспективе, такие события происходят постоянно. На смену одним технологиям приходят другие. Часть профессий исчезает, на их место появляются новые. Это естественный процесс.

Смогут ли системы с AI полностью заменить программистов? На этот вопрос нельзя дать однозначного ответа. Безусловно, можно утверждать, что профессия программиста останется, но способы создания программ изменятся на 100%. Они уже изменились.

Некоторых пугает этот процесс, потому что они ожидают, что адаптация или замена произойдет мгновенно или лавинообразно: сегодня работа есть, а завтра весь отдел программистов заменили. Такого быть не может и никогда не было. Эти процессы плавные и крайне инертные. Огромное множество проектов находится в стадии сопровождения. Никто не будет переписывать их на новые языки.

Ко мне периодически обращаются программисты с вопросами поиска работы. Их истории выглядят одинаково:
«Я работал 10–15 лет на одном проекте. Проект в состоянии поддержки. Я работал хорошо. Но теперь компания запускает новые проекты, и моих знаний недостаточно, чтобы меня взяли в команду».

В чем проблема? Конечно, в убеждениях. Программист — это творческая профессия. Если она для вас стала рутиной, нужно либо менять проект, либо вносить в текущий проект новые подходы и технологии. Индустрия не стоит на месте, и вы должны двигаться за ней.

Нашему мозгу свойственна консервативность. Мозг говорит: «Все и так хорошо, не надо ничего трогать. Код работает, зарплату платят, все отлично». От таких мыслей нужно избавляться.

Лично я не переживаю за профессию программиста, потому что готов адаптироваться к новым требованиям.
То, что сейчас AI не может заменить программистов, связано с качеством генерируемого кода: он получается ужасным, а львиную долю времени приходится тратить на объяснение AI, что именно нужно сделать. Но так как компании продолжают развивать эти системы, наша задача как программистов — адаптировать их к своей работе. Улучшать свой КПД.

Мы, программисты, находимся в уникальной точке развития технологий, где изменения становятся частью нашей повседневной жизни. Вместо того чтобы бояться инноваций, давайте использовать их как инструмент для собственного роста. Искусственный интеллект — это не угроза, а новый инструмент, который может сделать нас сильнее и эффективнее, если мы научимся правильно его применять.

Профессия программиста всегда будет существовать, потому что именно люди создают смысл и задают направление развитию технологий. Главное — это не останавливаться на достигнутом, быть открытым к новым знаниям и помнить, что любые изменения — это возможность стать лучше.

Так что продолжайте учиться, экспериментировать и адаптироваться. Будущее принадлежит тем, кто готов к изменениям.

#ИскусственныйИнтеллект #AI
🔥11👍10❤1
🚀 Завершил раздел Testcontainers в курсе DevOps!

🔹 Docker в Windows | WSL [#505369]
🔹 Testcontainers | Интеграционные тесты в Gradle [#505370]
🔹 Spring JPA и Testcontainers [#505371]
🔹 Тестирование асинхронных событий | Kafka | Testcontainers [#505372]
🔹 Оптимизация работы с Testcontainers [#505373]

💻 Двигаюсь дальше к Kubernetes!

🔥 Напоминаю, что пока я дописываю этот курс, его можно приобрести со скидкой 7990 рублей.

📈 Курс будет полезен как для развертывания приложений, так и для разработки.

👉 Присоединяйтесь: http://job4j.ru/
👍12
Channel name was changed to «О жизни в IT | Java | Kotlin | Карьера | Job4j.ru»
🚀 Обновления Job4j на 2025 год 🚀

🎯 Платформа
1. Настройка главного окна:
- График общей активности
- График прогресса по урокам
- Аналитика прогресса
- Доступные уроки
- Дерево навигации
- Таблица посещений

2. Система мотивации:
- Изменение подсчета баллов за выполненные уроки


📚 Обновления блоков
1. Микросервисы:
- Повествование на Spring Cloud
- Авторизация через KeyClock
- Добавление раздела тестирования с Testcontainers

2. Чистая архитектура. SOLID:
- Замена заданий


💡 Новые блоки. Уровень Senior
1. Системный дизайн: Вопросы архитектуры
2. NoSQL, MongoDB
3. Lucene, OpenSearch
4. Шаблоны проектирования в микросервисной архитектуре
5. Проектирование асинхронных систем. Реактивное программирование
6. Кеши HazelCast

🎥 Смотрите видео, чтобы узнать все подробности!
https://youtu.be/3oain2lDhCY

#Job4j #Обновления #Программирование #Микросервисы #СистемныйДизайн #Senior #SpringCloud #KeyClock
👍15🔥7
Обновленные уроки в блоке Стажер

GPT. Нейросети спешат на помощь. [#505264]
Checkstyle [#505274]

Проблема в том, что из-за блокировок нельзя скачать плагины в IDEA.
Делаем так.
1. Ставим Tor, чтобы не мучаться с поиском Proxy. https://disk.yandex.ru/d/wiPHq33kgg54GA
2. Скачиваем плагины с оф. сайта.
3. Устанавливаем их в ручную.

Через Tor так же можно смотреть и youtube 🤘
👍10
Мок-собеседования

Друзья, я снова вернул раздел мок-собеседований на платформу Job4j.ru

Развивать сразу два проекта нет возможности, поэтому пока проект CheckDev идет на полку.

Так же из CheckDev перенесу функцию мониторинга HH.ru.
👍6🔥3
Настройка .properties для локального окружения

Пару дней назад в чате обсуждали ситуацию с правками файла окружения application.properties. Ситуация стандартная: вы клонируете проект и настраиваете окружение. Как вы это делаете? Изменяете файл application.properties. Эти изменения отслеживает Git. После завершения задачи вы с радостью фиксируете изменения и загружаете настройки своего окружения в удалённый репозиторий.

Одно из озвученных решений — указать Git игнорировать файлы в папке config. Например, так:

git update-index --assume-unchanged /путь/к/файлу


Команда git update-index --assume-unchanged /путь/к/файлу сообщает Git, что вы хотите, чтобы он перестал отслеживать изменения указанного файла, но при этом не удаляет его из репозитория и не изменяет сам файл.

Такое решение имеет недостаток: вы больше не будете получать обновления по этому файлу.

Другое решение — это использование переменных окружения. Вы можете задать расположение файла конфигурации вне директории проекта.

Как это сделать?
Откройте IntelliJ IDEA: Run → Edit Configurations. В появившемся окне выберите Modify options → Add VM options.

Здесь можно указать любые настройки для Spring Boot. Например, задать расположение файла конфигурации:

-Dspring.config.location=file:c:/tmp/application.properties


Или указать отдельные настройки, например только профиль:

-Dspring.profiles.active=test


А как вы работаете с настройками локального окружения?

Больше информации вы можете найти на нашем курсе Spring Core | AOP на платформе https://job4j.ru.
👍13🔥1
KISS для Spring Boot и \*.properties

Добавил урок в блок Spring Core | AOP

Настройка окружения *.properties [#505377]

Коротко в уроке:

Чтобы упростить работу с конфигурациями, в Spring Boot можно вынести настройки в разные файлы. Например, создать структуру:

config/common/application.properties
config/logs/application.properties
config/telegram/application.properties
config/database/application.properties


В каждом файле храним параметры, сгруппированные по назначению.
Также можно подключать внешние папки (например, dev/config/) как необязательные, используя ключ optional. Для этого в application.properties (в самом конце!) добавляем:
spring.config.location=optional:file:./dev/config/*/


Не забудьте добавить папку dev/ в .gitignore:
dev/*


А для переопределения конфигураций поместите нужные настройки в папку config/z_override/.

Блок Spring Core | AOP можно пройти отдельно. Стоимость: 8650 рублей. http://job4j.ru/
🔥8
Добавлены новые уроки в курс DevOps:

1. Обзор Kubernetes [#505375]
2. Kubernetes в Debian [#505376]
3. DockerHub [#505379]
4. Запускаем проект в Kubernetes [#505378]

Друзья, у меня к вам большая просьба: кто уже взял этот курс — доделывайте его!
Сожмите булки, скрипите зубами, но делайте! )

А тем, кто ещё не решился погрузиться в «тёмную сторону CMD», напоминаю:
— Стоимость курса: 7990 рублей.
— В курсе весь «фарш» для микросервисов: Gradle | Docker | Testcontainers | Kubernetes | Helm | Prometheus | Grafana | ELK.

Если вы хотите освоить DevOps с нуля и научиться управлять контейнерами, деплоить сервисы и автоматизировать всё на свете, — присоединяйтесь!
Будет горячо 🔥
🔥15