BeanPostProcessor
BeanPostProcessor — это интерфейс в Spring Framework, который позволяет разработчикам расширять логику создания бинов. BeanPostProcessors вызываются после того, как бин был создан и проинициализирован, но до того, как он будет зарегистрирован в контейнере Spring.
BeanPostProcessors имеют два метода обратного вызова:
postProcessBeforeInitialization(Object bean, String beanName): вызывается перед тем, как будет вызван метод init() бина.
postProcessAfterInitialization(Object bean, String beanName): вызывается после того, как будет вызван метод init() бина.
BeanPostProcessor — это интерфейс в Spring Framework, который позволяет разработчикам расширять логику создания бинов. BeanPostProcessors вызываются после того, как бин был создан и проинициализирован, но до того, как он будет зарегистрирован в контейнере Spring.
BeanPostProcessors имеют два метода обратного вызова:
postProcessBeforeInitialization(Object bean, String beanName): вызывается перед тем, как будет вызван метод init() бина.
postProcessAfterInitialization(Object bean, String beanName): вызывается после того, как будет вызван метод init() бина.
👍19❤5🔥5☃2
Ищете оптимальные подходы для взаимодействия между сервисами?
Ждём вас на открытом вебинаре «Модели межсервисного взаимодействия» 20 августа в 20:00 мск, где мы разберем:
- основные принципы и типы межсервисного взаимодействия;
- плюсы и минусы синхронных и асинхронных моделей взаимодействия;
- как использовать API Gateway и Service Mesh для управления трафиком;
- лучшие практики и паттерны для надежного и масштабируемого взаимодействия;
- примеры успешных реализаций межсервисного взаимодействия в реальных проектах.
👨💻🛠👨🏻💻 Урок будет полезен разработчикам, архитекторам ПО, backend и fullstack-разработчикам, а также DevOps-инженерам.
Спикер Дмитрий Золотов — Flutter+Kotlin Developer в Yandex, опытный DevOps и системный администратор, ментор и преподаватель.
Занятие пройдет в преддверии старта курса «Software Architect», все участники получат скидку на обучение.
🔴 Ссылка для регистрации: https://vk.cc/cziPIn
Ждём вас на открытом вебинаре «Модели межсервисного взаимодействия» 20 августа в 20:00 мск, где мы разберем:
- основные принципы и типы межсервисного взаимодействия;
- плюсы и минусы синхронных и асинхронных моделей взаимодействия;
- как использовать API Gateway и Service Mesh для управления трафиком;
- лучшие практики и паттерны для надежного и масштабируемого взаимодействия;
- примеры успешных реализаций межсервисного взаимодействия в реальных проектах.
👨💻🛠👨🏻💻 Урок будет полезен разработчикам, архитекторам ПО, backend и fullstack-разработчикам, а также DevOps-инженерам.
Спикер Дмитрий Золотов — Flutter+Kotlin Developer в Yandex, опытный DevOps и системный администратор, ментор и преподаватель.
Занятие пройдет в преддверии старта курса «Software Architect», все участники получат скидку на обучение.
🔴 Ссылка для регистрации: https://vk.cc/cziPIn
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍4❤3🔥2
Sedona дополняет существующие кластерные вычислительные системы, такие как Apache Spark, Apache Flink и Snowflake, набором готовых распределенных пространственных наборов данных и Spatial SQL, которые позволяют эффективно загружать, обрабатывать и анализировать масштабные пространственные данные на разных машинах.
Java API для Sedona ставится за 5 минут с помощью Maven, также имеются API Python и R API
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍5❤3
Как перейти с монолита на микросервисы без ошибок?
Приходите на открытый вебинар 21 августа в 20:00 мск, где мы разберём:
- основные причины перехода с монолита на микросервисы;
- главные ошибки, допускаемые при переходе на микросервисную архитектуру;
- плюсы и минусы микросервисной архитектуры;
- паттерны и лучшие практики работы с микросервисами;
- примеры успешных и неудачных переходов на микросервисы.
👨💻🛠👨🏻💻 Урок будет полезен разработчикам и архитекторам ПО, работающим с крупными системами, руководителям проектов, планирующим переход на микросервисы, backend и fullstack-разработчикам, а также DevOps-инженерам.
Встречаемся в рамках курса «Microservice Architecture». Все участники вебинара получат специальную цену на обучение! Регистрация открыта: https://vk.cc/czlCB1
Приходите на открытый вебинар 21 августа в 20:00 мск, где мы разберём:
- основные причины перехода с монолита на микросервисы;
- главные ошибки, допускаемые при переходе на микросервисную архитектуру;
- плюсы и минусы микросервисной архитектуры;
- паттерны и лучшие практики работы с микросервисами;
- примеры успешных и неудачных переходов на микросервисы.
👨💻🛠👨🏻💻 Урок будет полезен разработчикам и архитекторам ПО, работающим с крупными системами, руководителям проектов, планирующим переход на микросервисы, backend и fullstack-разработчикам, а также DevOps-инженерам.
Встречаемся в рамках курса «Microservice Architecture». Все участники вебинара получат специальную цену на обучение! Регистрация открыта: https://vk.cc/czlCB1
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍5❤4🔥2
Интерфейс UnaryOperator
Интерфейс UnaryOperator предназначен для представления функций, которые принимают один аргумент и возвращают результат того же типа, что и аргумент.
Он является специализированным функциональным интерфейсом, входящим в пакет java.util.function.
UnaryOperator часто используется в stream API для применения функций к элементам потока.
В примере UnaryOperator используется для преобразования строк в верхний регистр с помощью метода map().
Интерфейс UnaryOperator предназначен для представления функций, которые принимают один аргумент и возвращают результат того же типа, что и аргумент.
Он является специализированным функциональным интерфейсом, входящим в пакет java.util.function.
UnaryOperator часто используется в stream API для применения функций к элементам потока.
В примере UnaryOperator используется для преобразования строк в верхний регистр с помощью метода map().
👍15❤4🔥4
Присоединяйтесь к открытому вебинару «Observability в информационных системах: строим звездолет из логов и метрик» 15 августа в 19:00 мск и сделайте этот прыжок в будущее!
Спикер Сергей Окатов — кандидат физико-математических наук и руководитель управления разработки.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3🔥2
Forwarded from Книги для Java программиста
Компания-разработчик СУБД Postgres Professional выпустила новую книгу «PostgreSQL 16 изнутри». Электронная версия учебника находится в свободном доступе. Автор книги — Егор Рогов, директор по разработке образовательных программ Postgres Professional.
Первое издание этого учебника, основанное на 14-й версии PostgreSQL, было выпущено в марте 2022 года и обновлено до 15 версии. Из-за большого читательского интереса компания перевела книгу на английский язык. Позже она стала самым популярным тематическим изданием 2023 года по версии Postgres Weekly и вошла в список профессиональной литературы на официальном сайте сообщества PostgreSQL.
В актуальной редакции книги «PostgreSQL 16 изнутри» учтены замечания читателей, исправлены опечатки, а также отражены изменения, произошедшие в версии PostgreSQL 16.
Также Postgres Professional обновила локализованную документацию к PostgreSQL 16.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍28🔥11❤9
Ждем вас на открытом вебинаре, где мы познакомимся с одной из базовых тем языка Java — Обобщения (Generics).
Изучим, для чего они нужны, где они применяются в стандартной Java-библиотеке, а также как их можно использовать в своем коде.
Встречаемся 21 августа в 20:00 мск.
Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍5🔥4❤3
Класс StringJoiner
Класс StringJoiner предназначен для построения строки путем соединения элементов из коллекции.
Он позволяет указать разделитель, префикс и суффикс результирующей строки.
StringJoiner часто используется при необходимости преобразовать коллекцию объектов в строку.
В примере StringJoiner используется как раз для объединения имен в строку с разделителем и добавлением префикса/суффикса.
Класс StringJoiner предназначен для построения строки путем соединения элементов из коллекции.
Он позволяет указать разделитель, префикс и суффикс результирующей строки.
StringJoiner часто используется при необходимости преобразовать коллекцию объектов в строку.
В примере StringJoiner используется как раз для объединения имен в строку с разделителем и добавлением префикса/суффикса.
1👍25❤3🔥2
Расширьте свои навыки в программировании с бесплатным мини-курсом по Java! Научитесь создавать Telegram-ботов, разрабатывать программы для обработки данных и строить чаты на фреймворке Spring. Не упустите шанс — начните обучение уже сегодня: 👉 https://epic.st/SE_4y?erid=2VtzqvVGdG8
Формат мини-курса отлично подойдёт для обучения из любой точки мира: смотрите видео в удобное время и закрепляйте навыки на практике.
🎁 За время обучения вы получите 5 полезных материалов в подарок, сертификат на скидку 10 000 рублей на любой курс, персональную карьерную консультацию и доступ к изучению английского языка в Skillbox на год.
До встречи на мини-курсе. Старт после регистрации!
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
Формат мини-курса отлично подойдёт для обучения из любой точки мира: смотрите видео в удобное время и закрепляйте навыки на практике.
🎁 За время обучения вы получите 5 полезных материалов в подарок, сертификат на скидку 10 000 рублей на любой курс, персональную карьерную консультацию и доступ к изучению английского языка в Skillbox на год.
До встречи на мини-курсе. Старт после регистрации!
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
1❤4👍3
DJL — это удобная библиотека машинного обучения для языка Java, особенностью которой является зоопарк моделей (Model Zoo), позволяющий получить готовую модель по описываемым параметрам из списка доступных моделей. Также имеется возможность создать свою модель, сохранить на диск и загрузить для дальнейшего использования.
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍21❤4🎉3🔥1
CopyOnWriteArrayList
CopyOnWriteArrayList — это реализация интерфейса List, оптимизированная для работы в многопоточном окружении.
Основное отличие этой коллекции в том, что все модифицирующие операции (добавление, удаление элементов) не изменяют существующий массив, а создают его копию.
Это позволяет избежать необходимости синхронизации для потокобезопасного чтения.
CopyOnWriteArrayList полезен в ситуациях, когда чтение данных происходит гораздо чаще, чем изменение. Например, при реализации общего кэша в многопоточном приложении.
CopyOnWriteArrayList — это реализация интерфейса List, оптимизированная для работы в многопоточном окружении.
Основное отличие этой коллекции в том, что все модифицирующие операции (добавление, удаление элементов) не изменяют существующий массив, а создают его копию.
Это позволяет избежать необходимости синхронизации для потокобезопасного чтения.
CopyOnWriteArrayList полезен в ситуациях, когда чтение данных происходит гораздо чаще, чем изменение. Например, при реализации общего кэша в многопоточном приложении.
1👍21🔥5❤3
Цель Jetty — поддержка веб-протоколов (HTTP/1, HTTP/2, HTTP/3, WebSocket и т. д.) в больших объемах с низкой задержкой, что обеспечивает максимальную производительность при сохранении простоты использования и совместимости с многолетней разработкой сервлетов.
Jetty — это современный полностью асинхронный веб-сервер, который может быть легко встроен в приложения, оставаясь при этом надежным средством для развертывания веб-приложений.
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3🔥1
DatagramPacket
DatagramPacket — это класс в Java, который представляет собой пакет датаграмм. Датаграммы используются для реализации бессоединительной службы доставки пакетов. Это означает, что каждый пакет отправляется независимо от других пакетов, и нет гарантии, что они будут доставлены в том же порядке, в котором были отправлены.
DatagramPacket — это класс в Java, который представляет собой пакет датаграмм. Датаграммы используются для реализации бессоединительной службы доставки пакетов. Это означает, что каждый пакет отправляется независимо от других пакетов, и нет гарантии, что они будут доставлены в том же порядке, в котором были отправлены.
1👍10❤3🔥3
ProGuard — это open-source минификатор, оптимизатор и обфускатор байткода Java.
Какие действия выполняет ProGuard?
— обнаруживает и удаляет неиспользуемые классы, поля, методы и атрибуты
— оптимизирует байткод и удаляет неиспользуемые инструкции
— переименовывает оставшиеся классы, поля и методы, используя короткие имена
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍14❤4🔥3
Устал уже готовиться к собеседованиям, учить одни и те же вопросы?
На одних знаниях невозможно проходить собеседования успешно.
Два человека:
1. Знает идеально всю теорию, но не ходит на собеседования, боится, откладывает, ищет подходящий момент и тд
2. Знает 50% теории, ходит по собеседованиям, получает оффер спустя 10 попыток
Кем вы хотите быть из этих двух людей? Второй человек рано или поздно за счет количества попыток пробьется на работу. На работе уже подтянет знания до необходимых бизнесу.
В конечном итоге у него будет и работа, и знания. У первого будут только знания.
🤔 Окей, а как найти работу-то?
Первый способ:
Увеличивать вероятность прохождения за счет своих хард-знаний
Учить больше, лучше, глубже: java, spring, базы данных, микросервисы и тд.
Второй способ:
Ходить на собеседования столько, чтобы научиться их хорошо проходить. Качать софт-скиллы, умение объяснять и доносить мысли другим людям
Вам сразу же показывают где у вас есть слабости в ваших знаниях, и вы идете их закрывать. А сидя в спокойной обстановке, так бы и не закрыли эти пробелы.
Вам дргуие люди показывают где вы плохи, а это неприятно и заставляет развиваться. После этого мозг расчехляет ресурсы на устранение пробелов в знаниях.
Продолжение про то как вырасти разработчику в канале Павла Сорокина - senior Java разработчика
На одних знаниях невозможно проходить собеседования успешно.
Два человека:
1. Знает идеально всю теорию, но не ходит на собеседования, боится, откладывает, ищет подходящий момент и тд
2. Знает 50% теории, ходит по собеседованиям, получает оффер спустя 10 попыток
Кем вы хотите быть из этих двух людей? Второй человек рано или поздно за счет количества попыток пробьется на работу. На работе уже подтянет знания до необходимых бизнесу.
В конечном итоге у него будет и работа, и знания. У первого будут только знания.
Первый способ:
Увеличивать вероятность прохождения за счет своих хард-знаний
Учить больше, лучше, глубже: java, spring, базы данных, микросервисы и тд.
Второй способ:
Ходить на собеседования столько, чтобы научиться их хорошо проходить. Качать софт-скиллы, умение объяснять и доносить мысли другим людям
Только факт того, что вы сходили на собеседование - это уже сильное потрясение.
Вам сразу же показывают где у вас есть слабости в ваших знаниях, и вы идете их закрывать. А сидя в спокойной обстановке, так бы и не закрыли эти пробелы.
Вам дргуие люди показывают где вы плохи, а это неприятно и заставляет развиваться. После этого мозг расчехляет ресурсы на устранение пробелов в знаниях.
Продолжение про то как вырасти разработчику в канале Павла Сорокина - senior Java разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤6👍4
Метод before()
Метод before() используется для сравнения порядка двух объектов типа Date.
Он позволяет проверить, идет ли одна дата перед другой.
Метод before() определен в классе java.util.Date и имеет следующий формат:
boolean before(Date date)
Он сравнивает текущий объект Date с датой, переданной в качестве параметра, и возвращает:
— true, если текущая дата идет раньше переданной даты.
— false, если текущая дата идет позже переданной даты или эти даты равны.
Этот метод часто используется для сравнения и сортировки дат, например:
— Проверить, было ли какое-то событие до определенной даты.
— Отсортировать список дат по возрастанию или убыванию.
— Найти самую раннюю или самую позднюю дату в наборе.
В этом примере создаются две даты, с помощью метода before() мы проверяем, идет ли date1 раньше date2.
Так как date1 содержит более раннюю дату, то метод before() возвращает true.
Метод before() используется для сравнения порядка двух объектов типа Date.
Он позволяет проверить, идет ли одна дата перед другой.
Метод before() определен в классе java.util.Date и имеет следующий формат:
boolean before(Date date)
Он сравнивает текущий объект Date с датой, переданной в качестве параметра, и возвращает:
— true, если текущая дата идет раньше переданной даты.
— false, если текущая дата идет позже переданной даты или эти даты равны.
Этот метод часто используется для сравнения и сортировки дат, например:
— Проверить, было ли какое-то событие до определенной даты.
— Отсортировать список дат по возрастанию или убыванию.
— Найти самую раннюю или самую позднюю дату в наборе.
В этом примере создаются две даты, с помощью метода before() мы проверяем, идет ли date1 раньше date2.
Так как date1 содержит более раннюю дату, то метод before() возвращает true.
2👍21❤5🔥2