bookjava | Unsorted

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

11248

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

Subscribe to a channel

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

⁉️ Spring Security — Alohomora для Java-разработчиков

Хотите освоить ключевой навык для Java-разработчика и обеспечить безопасность данных в своих проектах?

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

- основы Spring Security;
- применение Spring Security для защиты данных и повышения безопасности проектов;
- применение магии «Alohomora» для открытия запертых дверей в мире безопасности.

Урок идеально подходит для Java- и Kotlin-разработчиков.

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

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

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

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

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

Что такое механизм try-with-resources?

Данная конструкция, которая появилась в Java 7, позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после try, а компилятор уже сам неявно создаёт секцию finally, в которой и происходит освобождение занятых в блоке ресурсов. Под ресурсами подразумеваются сущности, реализующие интерфейс java.lang.Autocloseable.

Стоит заметить, что блоки catch и явный finally выполняются уже после того, как закрываются ресурсы в неявном finally.

👉@BookJava

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

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

Slim Docker Images для Java

Из этой статьи вы узнаете, как создавать слим Docker-образы для ваших Java-приложений с помощью Alpine Linux и Jlink.

https://piotrminkowski.com/2023/11/07/slim-docker-images-for-java/

👉@BookJava

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

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

Как нельзя называть переменные?

Этот вопрос подразумевает ответ из двух частей. Нужно указать, какие есть технические ограничения, и какие стилистические. Стиль – слишком большая тема, не специфичная только для Java, не будем на ней останавливаться.

Технически компилятор налагает одинаковые ограничения на имена как переменных, так и классов, методов, и всего остального. Эти имена обобщенно называются идентификаторы.

Ограничений всего три:
1. Имя целиком не должно совпадать с зарезервированным словом;
2. Первый символ должен проходить проверку методом Character.isJavaIdentifierStart();
3. Остальные символы должны проходить проверку Character.isJavaIdentifierPart().

На практике проверки означают, что имя должно состоять из таких символов Unicode, как:
• Буквы (разных языков)
• Символы валют (такие как $)
• Соединительные символы (такие как _)
Диакритика (combining mark, non-spacing mark)
• Методы, проходящие Character.isIdentifierIgnorable() (непечатаемые символы, в идентификаторе игнорируются компилятором)
• Цифры, числовые символы (такие как римские числа)

Последний пункт недопустим для первого символа имени. Тип конкретного символа можно узнать методом Character.getType().

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

👉@BookJava

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

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

👉 Хотите узнать, как эффективно обрабатывать элементы коллекций в Java? Ваша работа с автотестами требует улучшений?

Ждем вас на открытом вебинаре «Stream API и функциональные интерфейсы в Java» 20 августа в 20:00 мск, где мы разберём:

- обработку элементов коллекций с помощью Stream API;
- обработку функциональных интерфейсов при написании автотестов;
- ответы на все возникающие вопросы.

Спикер Павел Балахонов — ведущий инженер по автоматизированному тестированию на проекте VK Private Cloud Solutions, опытный ментор и преподаватель.

👉 Встречаемся в преддверии старта курса «Java QA Engineer. Professional». Все участники вебинара получат специальную цену на обучение! Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/czrrC2

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

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

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

Советы по Spring Batch 💡

Оптимизируйте свои шаги в @SpringBatch с помощью параметра `startLimit` и определите, сколько раз можно запустить шаг. 🔥

#Java #SpringBatch

👉@BookJava

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

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

Аудит в Spring Data MongoDB💡

Используйте аннотации @CreatedBy, @LastModifiedBy, @CreatedDate и @LastModifiedDate для автоматического отслеживания времени создания и изменения сущностей, а также пользователя, ответственного за изменения. 🔥

#SpringData

👉@BookJava

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

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

👩‍💻 Знакомство с Java Instrumentation API & Java agent

Ждем вас на открытом уроке, где вы узнаете, что такое Java Instrumentation API и для чего нужны агенты. В онлайне изучим агент, позволяющий изменять код бизнес-классов для добавления дополнительных trace-логов для отладки приложения.

Вебинар подходит Java-разработчикам, которые сталкиваются с вопросами производительности приложений.

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

Встречаемся 22 августа в 20:00 мск.

Спикер — Tech Lead в одном из крупнейших российских банков и кандидат технических наук.

👉 Запишитесь на вебинар и прокачайте свои навыки работы с Java: https://vk.cc/cziWV9

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

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

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

Совет по Spring MongoDB 💡

Определение выражений сортировки с использованием type-safe API 🔥

👉@BookJava

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

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

В чём разница между jar и war?

jar и war – расширения платформо-независимых файлов-архивов Java-приложения. Кроме них есть еще третий формат, ear. Все эти форматы – на самом деле просто zip-архивы с классами и другими частями приложения. Вы можете переименовать такой файл в .zip, разархивировать, и посмотреть, что внутри.

JAR – Java Archive. Содержит файлы классов, ресурсы, зависимые библиотеки, и другие необходимые для приложения файлы. Может содержать точку входа, и использоваться как цель для исполнения команды java.

WAR – Web Archive. Технически имеет ту же структуру, но другую роль – архив JavaEE web-компонента. Обычно содержит jar-ы с реализацией, JSP, статические файлы фронт-энда, и мета-информацию для сервлет-контейнера (web.xml). В основном используется как деплоймент web-приложения в сервлет-контейнер. С приходом Servlet API 3.0 и embedded-контейнеров, всё больше становится принято запаковывать и web-компоненты в самодостаточные jar (Лозунг Spring Boot: Make jar, not war).

EAR – Enterprise Archive. Для разработчиков, начавших карьеру уже во времена Spring Framework, может показаться совсем экзотичным. Это собранное воедино монолитное JavaEE приложение. Содержит дескрипторы деплоймента и JavaEE модули (веб-модули, EJB, клиентские модули, адаптеры ресурсов). Деплоится в JavaEE Application Server.

Все три типа файлов собираются утилитой jar из JDK.

👉@BookJava

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

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

📚 Пройди тест на знание Java и получи доступ к 7️⃣2️⃣ открытым урокам по Java

Два открытых урока можно посмотреть без регистрации и оценить формат обучения. Для доступа ко всем открытым урокам из курса «Java Developer. Professional» от OTUS необходимо пройти входное тестирование: ответить на 20 вопросов и уложиться в тайминг.

📊 -Курс рассчитан на профессионалов с практическим опытом работы на Java.
На курсе вы освоите:
- создание современных Java-приложений;
- основы функционирования JVM (сборка мусора, byteCode);
- приемы применения многопоточности;
- решение задач уровня Middle+;
- современные фреймворки Spring WebFlux, Kafka, реактивный Postgres и Kubernetes;
- написание кода чище и быстрее.

Забудьте о скучном обучении — здесь вас ждут настоящие челленджи и нестандартные практические решения. А еще сильные проекты для портфолио и карьерный сапорт! 📅 Старт группы уже 29 августа 2024г. Доступна рассрочка на обучение.

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

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

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

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

Советы по Spring Boot💡

Улучшите сборку образа контейнера @springboot с помощью #Jlink!

https://paketo.io/docs/howto/java/#install-a-minimal-jre-with-jlink

#SpringBoot #Java

👉@BookJava

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

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

🚀 Совет по Java API 🚀

java.nio.file.WatchService - мониторинг событий файловой системы в реальном времени. Обнаружение изменений файлов и директорий независимо от платформы. 🔥

https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/file/WatchService.html

#Java #JavaAPI

👉@BookJava

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

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

⚡️ Узнайте, как манипулировать байт кодом Java-приложений!

На открытом уроке курса «Java Developer. Advanced» разберем, как просматривать и читать байт код классов и для чего это может быть нужно. Научитесь создавать утилиты для изменения байт кода существующих классов в runtime. Это знание поможет вам улучшить производительность ваших приложений и решать сложные задачи.

Вебинар будет полезен Java-разработчикам, которые сталкиваются с вопросами производительности приложений.

Встречаемся 7 августа в 20:00 мск.

Спикер — Tech Lead в одном из крупнейших российских банков и кандидат технических наук.

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

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

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

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

Совет по JPA 🚀

Упростите свои #Java модели данных, встраивая сложные типы непосредственно в ваши сущности с помощью аннотации
@Embedded в @JPA! Это идеально подходит для многократно используемых компонентов, таких как адреса. 🔥


#Hibernate #SpringBoot #JavaDevelopment #ORM

👉@BookJava

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

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

Советы по Java API 🚀

Синхронизация в Java - ReentrantLock

Усовершенствуйте синхронизацию потоков с помощью ReentrantLock в Java. Достигайте более тонкого контроля и продвинутых механизмов блокировки.

class X {
private final ReentrantLock lock = new ReentrantLock();
// ...

public void m() {
lock.lock(); // block until condition holds
try {
// ... method body
} finally {
lock.unlock();
}
}
}

https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/locks/ReentrantLock.html

👉@BookJava

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

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

Ну как там с фичами?

Обсудите все рабочее и актуальное на JVM Day — конференции от Т-Банка для опытных Java- и Scala-разработчиков.

В программе — 15+ докладов. В блоке по Java расскажут про фичи, инструменты и фреймворки. А по Scala — разберут подходы к бэкенд-разработке с использованием экосистемы и практику функционального программирования.

После — афтепати с развлечениями, музыкой и фотозоной. Полезные знакомства тоже будут.

Встреча пройдет 31 августа в штаб-квартире Т-Банка. Участие бесплатное. А регистрация тут

erid:2VtzqwJcafn
Реклама. АО "ТБанк", ИНН 7710140679, лицензия ЦБ РФ № 2673

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

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

Почему тупит Kafka?

Знаний об отправке/приёме сообщений не хватит, чтобы быстро найти причину просадки. Если хотите отказоустойчивую систему, которую легко дебажить, стоит разобраться в архитектуре Кафки. 

➡️На обновлённом курсе Слёрма «Apache Kafka для разработчиков» вы получите больше, чем просто настройка Kafka. Вы изучите архитектуру и логику работы с Kafka на примере бизнес-кейсов компаний: MovieFlix, GetTaxi, MyBank. 

За 8 недель вы:

✔️Поймете основы работы с Kafka и принципы построения архитектуры и бизнес-процессов
✔️Научитесь решать проблемы отправки/получения большого количества сообщений из разнородных систем
✔️Подготовитесь к собеседованиям на уровень пользователя Kafka

❗️Углублённый курс с практикой на Java и платформой Docker+Postgres.  

Спикеры:

🔥Всеволод Севостьянов. Staff Engineer в Lokalise
🔥Василий Калугин. Владелец корпоративного сервиса Apache Kafka в АО «ЭР-Телеком Холдинг»

⚡Старт — 26 августа
Занять место на потоке — по ссылке

erid: LjN8JwNrn

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

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

Совет по SpringFramework 💡

Самый простой способ создания динамических SQL-запросов в JPA - это Query By Example. Вы создаете объект-пример, который оборачиваете в пример, а затем передаете его в ваш @SpringData
хранилищу. JPA создаст WHERE только с теми полями, которые вы задали.

👉 @BookJava

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

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

🚀 Совет по API Java 🚀

java.util.IdentityHashMap

В отличие от HashMap, этот класс использует равенство ссылок (==), а не равенство объектов (equals()) для определения уникальности ключей, что делает его подходящим для конкретных случаев использования. 🔥

https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/IdentityHashMap.html

👉@BookJava

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

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

👩‍💻 Обобщения в Java — что это и как эффективно с ними работать?

Ждем вас на открытом вебинаре, где мы познакомимся с одной из базовых тем языка Java — Обобщения (Generics).
Изучим, для чего они нужны, где они применяются в стандартной Java-библиотеке, а также как их можно использовать в своем коде.

Встречаемся 21 августа в 20:00 мск.

Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.

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

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

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

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

Совет по Spring Boot💡

Улучшите сборку образа контейнера @springboot с помощью #Jlink! 🔥

https://paketo.io/docs/howto/java/#install-a-minimal-jre-with-jlink

#SpringBoot #Java

👉@BookJava

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

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

Совет по @SpringData: при использовании интерфейсных проекций вы можете получить доступ к вложенным объектам, добавив `path` к методу getter. Посмотрите, как метод getDepartmentDeptName получает deptName из сущности Department.

#Java

👉@BookJava

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

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

API-тесты требуют слишком много времени и усилий? Хотите узнать, как автоматизировать тестирование и сделать его более эффективным?

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

- что такое Rest Assured и как он работает;
- методики написания API-автотестов на Rest Assured;
- ответы на все возникающие вопросы.

Спикер Павел Балахонов — ведущий инженер по автоматизированному тестированию на проекте VK Private Cloud Solutions, опытный ментор и преподаватель.

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

Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://clck.ru/3CQ6BX/?erid=2VtzqwFXTyE

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

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

Spring Data JDBC. Проблемы известные, проблемы неизвестные
Михаил Поливаха

Spring Data JDBC — относительно новый модуль Spring Data. У него своя концепция, свои фичи, свои баги и проблемы. Часть этих проблем известна аудитории и описана в документации. Однако иногда документация врет или недоговаривает. К тому же есть некоторые неочевидные детали реализации, которые могут смутить пользователей библиотеки. Это касается многих аспектов — от генерации SQL до маппинга сущностей.

Во время доклада мы посмотрели на ряд подобных сюрпризов, обсудим, баг это или фича и что разработчики планируют с этим делать. Также рассмотрели текущее состояние проекта Spring Data JDBC — над чем идет работа, что исправляется, а что пока нет.

источник

👉@BookJava

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

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

Структурированная конкуренция

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

источник

👉@BookJava

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

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

Начните обучение в магистратуре в Центральном университете уже на 3-м курсе бакалавриата!

Центральный университет — современный вуз, созданный при поддержке ведущих компаний России: Т-Банка, Авито и других.

Учебу реально совместить с последними курсами бакалавриата или действующей работой. Обучение занимает 20 часов в неделю в вечернее время в первый год, а занятия проводят в центре Москвы профессоры из МГУ, МФТИ, РЭШ и практики из индустрии. Обучение в университете построено по принципам ИТ-компаний, со средой, способствующей росту и развитию.

У каждого студента будет:

⚫️личный ментор по траектории обучения;
⚫️доступ к карьерному центру с коучами и консультантами;
⚫️опыт работы в проектах 30+ компаний-партнеров уже во время обучения;
⚫️диплом гособразца.

Участвуйте в онлайн-отборе, чтобы выиграть грант на обучение до 1,2 млн рублей. Больше подробностей про университет и конкурс грантов по ссылке!

erid:2Vtzqumm2GB
Реклама, АНО ВО «Центральный университет», ИНН 774341802

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

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

Адаптер (Adapter) — объект, обеспечивающий взаимодействие двух других объектов, один из которых использует, а другой предоставляет несовместимый с первым интерфейс.
Мост (Bridge) — структура, позволяющая изменять интерфейс обращения и интерфейс реализации класса независимо.
Компоновщик (Composite) — объект, который объединяет в себе объекты, подобные ему самому.
Декоратор (Decorator) — класс, расширяющий функциональность другого класса без использования наследования.
Фасад (Facade) — объект, который абстрагирует работу с несколькими классами, объединяя их в единое целое.
Приспособленец (Flyweight) — это объект, представляющий себя как уникальный экземпляр в разных местах программы, но по факту не являющийся таковым.
Заместитель (Proxy) — объект, который является посредником между двумя другими объектами, и который реализует/ограничивает доступ к объекту, к которому обращаются через него.

👉@BookJava

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

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

Совет по @SpringData

Если вы используете параметр hibernate.use_sql_comments, чтобы показать, какой запрос JPQL вызвал какой SQL запрос, вы можете дополнительно использовать аннотацию (@)Meta из Spring Data JPA, чтобы задать пользовательский комментарий для вашего JPQL запроса.

#Java

👉@BookJava

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

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

Это очень подробный пост о проблеме, которую мы наблюдали в Virtual Threads с " pinning" в Netflix.

https://netflixtechblog.com/java-21-virtual-threads-dude-wheres-my-lock-3052540e231d

#Java #VirtualThreads

👉@BookJava

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