bookjava | Unsorted

Telegram-канал bookjava - Библиотека Java разработчика

11248

Библиотека Java разработчика. Java, Spring, Maven, Hibernate По всем вопросам @evgenycarter № 4880864218

Subscribe to a channel

Библиотека Java разработчика

Хранилище файлов. Java + WebDav

Java + WebDav - загружаем файл на webdav через Rest запрос.

00:00 Приветствие
00:34 Spring Init
00:55 Docker Hub
01:54 docker-compose
04:25 webdav.conf
06:00 application.yaml
06:50 Sardine
07:36 WebDavConfig
09:15 WebConfig
11:40 FileService
14:09 Controller
17:22 Docker Fix
17:47 Postman
18:16 что не так?
20:46 Подписывайтесь

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Пишем минимальный ActivityPub-сервер с нуля

Mastodon — это децентрализованная социальная сеть, работающая по модели федерации, как email. Протокол федерации называется ActivityPub и является стандартом W3C, а Mastodon — далеко не единственная его реализация, но самая популярная. Различные реализации протокола, как правило, совместимы друг с другом, настолько, насколько им позволяют их совпадения в функциональности. У меня есть и мой собственный проект ActivityPub-сервера — Smithereen, такой зелёный децентрализованный ВК, где я когда-нибудь таки верну стену.

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

https://habr.com/ru/articles/702724/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

👩‍💻 Как эффективно использовать Java Collections для хранения, извлечения и обработки данных?

Ждем вас на открытом вебинаре 11 сентября в 20:00 мск, где мы разберем:

✔️ обзор структуры коллекций и их основных методов;
✔️ особенности различных реализаций коллекций;
✔️ примеры применения коллекций для решения практических задач.

Урок идеально подходит для тех, кто начинает изучать Java или хочет углубить свои знания.

Встречаемся в преддверии старта курса «Специализация Java-разработчик».
Все участники вебинара получат специальную цену на обучение!

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cAgDLx

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека Java разработчика

Совет по Spring

В этом выпуске мы рассмотрим новый проект Spring Boot Testjars, который значительно упрощает создание и повторное использование сателлитных Java-сервисов, таких как микросервисы на базе Spring Boot или инфраструктура, например, Spring Authorization Server.

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Что если бы Java-разработчики могли создавать веб-приложения, не прибегая к помощи JavaScript? 🤔

👉 @BookJava

Читать полностью…

Библиотека Java разработчика

Профилирование Java-приложений: от HeapDump до Grafana

Добрый день дорогой читатель. Сегодня я дам тебе несколько советов для поиска и анализа проблем в твоем Java приложении. Мы разберем такие вещи как: HeapDump, ThreadDump, VisualVM, Grafana, HikariPool, Prometheus и Garbage Collector.

Повествование будет строиться следующим образом: Я буду описывать потенциальные проблемные сценарии (use-case’ы) и шаги, которые необходимо предпринять для локализации и решения проблемы.

https://habr.com/ru/articles/837834/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Дилемма 3n+1 на Java. Кэшируем рекурсию

Приветствую всех, сегодня я хочу рассказать про одну из самых интересных неразгаданных загадок математики. Гипотеза Коллатца, или же дилемма 3n+1 прославилась благодаря простоте своей формулировки, при этом оставаясь не доказанной уже более 90 лет.

В этом выпуске : обзор самой гипотезы, код-снипеты, кэширование, рекурсия, и много чего еще.

Поехали.

Краткая формулировка, то бишь немного измененная выдержка из википедии Collatz conjecture — Wikipedia Гипотеза Коллатца — Википедия (wikipedia.org):

Берём любое натуральное число n:

1) Если оно чётное, то делим его на 2,
2) Если нечётное, то умножаем на 3 и прибавляем 1.

Над полученным числом выполняем те же самые действия, и так далее.

https://habr.com/ru/articles/839352/

👉@BookJava

Читать полностью…

Библиотека Java разработчика

🚀 Совет по Spring 🚀

Тестовые библиотеки Spring Boot (Testjars) 🔥

Привет, поклонники Spring! В этом выпуске мы рассмотрим новый проект Spring Boot Testjars, который значительно упрощает создание и повторное использование вспомогательных сервисов на базе Java, таких как микросервисы на основе Spring Boot или инфраструктурные компоненты, например, Spring Authorization Server.

источник

👉@BookJava

Читать полностью…

Библиотека Java разработчика

📚 Пройди тест на знание Java и получи доступ к 🌿🌿 открытым урокам по Spring

🕗 Два открытых урока можно посмотреть без регистрации и оценить формат обучения. Для доступа ко всем открытым урокам из курса «Разработчик на Spring Framework» от OTUS необходимо пройти входное тестирование: ответить на 21 вопрос и уложиться в тайминг.

📊 -Курс рассчитан на профессионалов с практическим опытом работы на Java.
- Мы будем 5 месяцев погружать вас в теорию и практику Spring Framework.
- Дадим 18 практических работ. Процесс review сдаваемой работы максимально приближен к тому, каким он мог быть на реальном проекте. Помимо этого, мы попросим вас сдать дипломную работу, каких скучных записанных занятий, только живые онлайн-лекции, интересные практические задачи и развернутая обратная связь от лучших экспертов ниши. 📅 Старт группы уже 30 сентября 2024г. Доступна рассрочка на обучение.

➡️ НАЧАТЬ ТЕСТИРОВАНИЕ

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека Java разработчика

🎥 Java для начинающих | Уроки Java

#1 - Программирование на Java
#2 - Установка Java JDK и IntelliJ IDEA
#3 - Типы данных
#4 - Переменные
#5 - Арифметические операции
#6 - Условные операторы
#7 - циклы for, wile, do wile
#8 - Массивы в Java
#9 - Классы в Java
#10 - Тип данных String в Java
#11 - Наследование в Java
#12 - Java интерфейсы
#13 - Абстрактные классы java
#14 - Вложенные классы java
#15 - Пакеты в java
#16 - Перегрузка методов java
#17 - Основы ООП
#18 - Обработка исключений в java , try catch java / Java с нуля

Все видео доступны на youtube

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Java Virtual Threads

0:00 Intro
0:42 What are preview features, and how you can use them
3:34 What are Virtual Threads about?
4:21 Goals of Virtual Threads
5:11 Cost of a platform thread and CPU usage
7:49 How to use Virtual Threads
9:11 Using ExecutorServices with Virtual Threads
11:04 ThreadLocals and Synchronization
11:19 Synchronization, pinned threads and locks
13:14 Final words and outro

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Совет

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

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Конвейер для Spring-приложений прямо в IDE

Приглашаем на презентацию нового инструмента от Haulmont — компании, подарившей миру JPA Buddy и другие инструменты разработки, разрабатывающей корпоративное ПО и отказоустойчивые решения.

На встрече разработчики расскажут про Amplicode — набор инструментов для эффективной разработки и развертывания web-приложений на современном стеке технологий. Amplicode учит IDE работать в терминах фреймворка.

🌐 Онлайн в YouTube и на VK Видео
📆 3 сентября, 18:00 (МСК, GMT+3)

В программе:
— Обзорный доклад об Amplicode: история создания инструмента и возможности.
— Время для кода! Демо Amplicode от экспертов — ревью приложения, его доработка, разработка REST API, настройка доступа, деплой и создание админки на React Admin.
— Открытая дискуссия: команда Amplicode и эксперты ответят на вопросы участников.

Ссылку на трансляцию отправим вам на почту перед началом вебинара.

Регистрация — на сайте.

Реклама. ООО «ХОУЛМОНТ САМАРА». ИНН 6316134393

Читать полностью…

Библиотека Java разработчика

Что можно делать с классом Connection?

Итак, в результате соединения JDBC драйвера создается объект Connection – сессия работы с базой данных. Это главный класс при работе с JDBC. Основная роль этого класса – исполнение SQL-выражений (Statement) и получение их результатов в виде ResultSet.

Connection предоставляет в виде класса DatabaseMetaData мета-информацию о базе данных в целом: таблицы, поддерживаемая грамматика SQL, хранимые процедуры, возможности этого соединения, и т.д..

В коннекшне задается множество настройки самого соединения. Это уровень изоляции транзакций, режим авто-коммита, ключи шардирования, и многое другое. Маппинг типов данных SQL в Java-типы задается здесь же, свойством typeMap.

Помимо выполнения выражений, Connection предоставляет средства для управления транзакциями. Его методами можно создать Savepoint, откатиться к нему, закоммитить транзакцию когда авто-коммит отключен.

#SQL

👉@BookJava

Читать полностью…

Библиотека Java разработчика

🚀Совет Spring

AnnotationAwareOrderComparator

Утилитный класс для сравнения объектов на основе их аннотаций
@Order или Ordered. Он используется в ситуациях, когда нужно определить порядок выполнения компонентов. 🔥

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/annotation/AnnotationAwareOrderComparator.html

👉@BookJava

Читать полностью…

Библиотека Java разработчика

⌨️ Ваши знания в области Java недостаточны для успешного прохождения нужных собеседований и сертификации Oracle Java Programmer (OCAJP)?

Всего за 4 месяца вы уверенно овладеете всеми аспектами языка Java, научитесь создавать чистый и легко читаемый код, сможете успешно пройти любое собеседование, а также успешно пройти сертификацию Oracle Java Programmer.

Хотите это реализовать? Присоединяйтесь к курсу «Углубленное изучение языка Java».

Ознакомится с курсом можно на бесплатном открытом уроке «Определение областей действия переменных (Scopes) в Java».

🔌 Урок пройдет 16 сентября в 20:00 мск.

➡️ Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cAiZia

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Библиотека Java разработчика

🚀 Java Streams: Основные методы для чистого и эффективного кода!

Java Streams предлагают множество методов для упрощения манипуляций с данными и повышения читаемости кода.
Вот краткое руководство с примерами:

Освойте эти методы, чтобы писать более чистый и эффективный код на Java! 💡

👉@BookJava

Читать полностью…

Библиотека Java разработчика

🚀 Советы по Spring Boot 💡

Библиотека Spring Boot Startup Report генерирует интерактивный отчет о запуске приложения Spring Boot, который позволяет понять, что влияет на время запуска приложения, и, возможно, поможет его оптимизировать. 🔥

https://github.com/maciejwalkowiak/spring-boot-startup-report

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Работа с библиотекой WebFlux вызывает затруднения у многих Java/Kotlin разработчиков

Код выглядит непривычно, непонятно в каких потоках выполняется логика и как этим управлять

Сегодня я попытаюсь объяснить простым языком такой важный аспект, как момент переключения потоков в WebFlux, это поможет вам допускать меньше ошибок и писать более производительный код

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

Статья по теме https://habr.com/ru/articles/811289/

Читать полностью…

Библиотека Java разработчика

⚡ Эксперт MES

ИТ-команда Росатома ищет Эксперта MES, который будет отвечать за систему управления производством: разрабатывать требования, настраивать, тестировать модули и поддерживать систему после внедрения.

✅ Пригодятся знания типовых моделей и структур данных MES и опыт работы с системой.
✅ Важно, чтобы вы умели программировать в среде фреймворков .NET, J2EE, JavaScript, а также понимали, как моделировать бизнес-процессы.

☎ Узнать о вакансии больше можно по ссылке:
https://voronezh.hh.ru/vacancy/105720940

Читать полностью…

Библиотека Java разработчика

Регистрация на Java meetup 2024 уже открыта! ⚡️

7 сентября встречаемся в штаб-квартире Сбера на Кутузовском проспекте, чтобы поговорить о Spring Framework, нативных сборках Java-приложений и устройстве разработки в мире open source.

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

По ссылке — подробное расписание и заявка на участие. До встречи на Java meetup 2024! 💚

Читать полностью…

Библиотека Java разработчика

🎯 Хотите стать Java-разработчиком, но думайте, что изучение основ программирования — это скучно?

Только не в нашем формате! Ждём вас на онлайн-курсе «Специализация Java-разработчик». Только живые вебинары, вы освоите самые востребованные инструменты и лучшие практики.

Ознакомится с курсом можно на бесплатном открытом уроке «Введение в Java Collections: обзор интерфейсов и их имплементаций».

📌 Урок пройдет 11 сентября в 20:00 мск.

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cA1Y5G

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека Java разработчика

Совет по Spring 🚀

Используйте SSEEvent в Spring для бесшовных обновлений в реальном времени в ваших приложениях 🔥

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Структурированное логирование в Spring Boot 3.4 🚀

В Spring Boot 3.4 поддержка структурированного логирования доступна из коробки. Поддерживаются форматы Elastic Common Schema (ECS) и Logstash. 🔥

https://spring.io/blog/2024/08/23/structured-logging-in-spring-boot-3-4

👉@BookJava

Читать полностью…

Библиотека Java разработчика

👩‍💻 Типы данных Java: идентификаторы и примитивы

Хотите глубже понять типы данных в Java? Ждем вас на открытом вебинаре 2 сентября в 20:00 мск,

где мы разберем:

➡️ как работать с идентификаторами и примитивами в Java;
➡️ как решать задачи, аналогичные экзаменационным, и набить руку на примерах;
➡️ все возникающие вопросы.

Урок идеально подходит для тех, кто хочет изучить Java вглубь, узнать тонкости и хитрости языка, а также для Java-разработчиков, стремящихся структурировать свои знания и лучше подготовиться к собеседованиям.

Спикер Дмитрий Коган — опытный разработчик, председатель совета предприятия в DXC, публицист, спортивный журналист и блогер.

Встречаемся в преддверии старта курса «Углубленное изучение языка Java».
Все участники вебинара получат специальную цену на обучение!

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/czWbpx

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека Java разработчика

Тестовое собеседование на Middle Java-разработчика завтра

Завтра, 28 августа в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
1. Роман Половинцев, ex-TeamLed в Сбер, Т-Банк, Райффайзенбанк и ВТБ позадает реальные вопросы и задачи разработчику-добровольцу
2. Роман будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
3. В конце можно будет задать любой вопрос Роману

Что узнаешь на прямом эфире от ШОРТКАТ:
- Чего ждут от кандидатов на Middle позиции в Java-разработке
- Какие вопросы задают на интервью и зачем
- Как подготовиться к собесу, чтобы получить оффер

Это бесплатно?
Бесплатно

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot

Читать полностью…

Библиотека Java разработчика

JRE – Java Runtime Environment, Java-окружение времени выполнения. Это набор всего необходимого чтобы запустить скомпилированную Java-программу. Окружение состоит из виртуальной машины Java (JVM), библиотеки классов (Java Class Library), консольной команды java и прочей инфраструктуры. Тем не менее, JRE не достаточно чтобы создавать новые программы.

JDK – Java Development Kit, набор Java-разработчика. Это полнофункциональный SDK для Java. JDK включает в себя JRE, но кроме того содержит компилятор (javac) и другие инструменты разработки, такие как javadoc и jdb. С помощью JDK можно создавать и компилировать программы.

В большинстве случаев, если вам нужно только запускать Java программы, вы устанавливаете только JRE, если же вы планируете программировать на Java, вместо этого вам необходим JDK.

https://stackoverflow.com/questions/1906445/what-is-the-difference-between-jdk-and-jre/1906455#1906455

👉@BookJava

Читать полностью…

Библиотека Java разработчика

Совет по JUnit 5 🚀

Тестируйте методы-шаблоны с помощью @TestTemplate

Используйте @TestTemplate для определения методов-шаблонов, которые создают динамические тесты на основе входных данных. 🔥

https://junit.org/junit5/docs/current/api/org.junit.jupiter.api/org/junit/jupiter/api/TestTemplate.html

👉@BookJava

Читать полностью…

Библиотека Java разработчика

👩‍💻 Хотите научиться писать надежные тесты и создавать стабильные приложения на Java?

Ждем вас на открытом вебинаре «Введение в Java Unit: тестирование с использованием Junit и Mockito», 28 августа в 20:00 мск,

где мы разберем:

➡️ историю разработки без тестирования;
➡️ как писать простые тесты и получать быстрые результаты;
➡️ как использовать тестовые заглушки;
➡️ отличия интеграционных от юнит-тестов.

📌Урок идеально подходит для тех, кто начинает изучать Java и хочет внедрить тестирование в свою повседневную разработку.

Спикер Роман Вороновский — опытный разработчик и ментор.

Встречаемся в преддверии старта курса «Специализация Java-разработчик».
Все участники вебинара получат специальную цену на обучение!

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/czHN6k

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека Java разработчика

Особенности работы класса Matcher

Как мы уже писали ранее, основная функциональность работы с регулярными выражениями представлена в Java классом Matcher. Рассмотрим его подробнее.

Во-первых, в общем случае матчер действует не по всей строке, а только внутри заданного «региона». Изначально регион совпадает со всей строкой, но его можно сужать и изменять в процессе работы. Методы regionStart и regionEnd возвращают текущие границы, а region устанавливает новые.

Свойство transparentBounds экземпляра матчера может разрешать регулярному выражению заглядывать при поиске за границы, при условии что итоговая совпавшая подстрока будет всё ещё в границах региона (lookahead и lookbehind). А выключив свойство anchoringBounds можно перестать трактовать границы региона как границы строки (^ и $ в выражении).
Регулярные выражения используются для двух задач: поиска и замены. Поговорим о поиске.

Метод matches проверяет, удовлетворяет ли выражению весь регион, lookingAt – хотя бы его начало. Метод find похож на next итератора – он последовательно идет по строке, и находит следующие совпадения с выражением. Эту итерацию можно сдвинуть на определенную позицию строки, передав позицию как параметр.

Matcher реализует интерфейс MatchResult. Через него предоставляется информация о последнем успешном поиске (любым из перечисленных методов). Если эту информацию необходимо сохранить, toMatchResult() выделит её в отдельный иммутабельный объект. А если хочется обработать последовательность всех совпадений в виде стрима, поможет метод results().

Интерфейс MatchReslut предоставляет методы group, start и end. Они дают содержимое найденной подстроки и ее позицию в строке. Если этим методам параметром передать номер или имя группы, то результатом будет информация не о всей подстроке, а о ее группах. Общее количество групп хранится в свойстве groupCount.

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

Метод reset сбрасывает всё это текущее состояние поиска. Передав в него параметр, можно заодно заменить строку, с которой работаем. Используемое регулярное выражение тоже можно заменить, методом usePattern, но состояние поиска при этом не сбросится.
Для замены совпавших с регулярным выражением подстрок есть методы replaceFirst и replaceAll. В них можно передать как строку-замену, так и коллбэк, который будет вычислять её на лету. Оба метода сбрасывают состояние.

При замене можно использовать $ для ссылки на группы совпадения, а символ \ используется для escape-последовательностей. Если требуется воспринимать эти символы без дополнительного смысла, необходимо обернуть строку-замену в вызов quoteReplacement.

Есть более гибкий способ замены. Matcher позволяет последовательно вручную выполнять поиск (всё теми же методами), а затем добавлять пройденный кусок строки с замененным совпадением в StringBuilder/StringBuffer методом appendReplacement. Оставшийся непройденный хвост добавляется методом appendTail. То есть, последовательность вызовов m.find(); m.appendReplacement(); m.appendTail(); эквивалентна вызову m.replaceFirst(), а while(m.find()) m.appendReplacement(); m.appendTail(); – это m.replaceAll().

👉@BookJava

Читать полностью…
Subscribe to a channel