bookjava | Unsorted

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

10986

📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP

Subscribe to a channel

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

Сравните репозитории Spring Data

Основная часть работы в Spring Data строится вокруг интерфейса Repository. Это маркерный интерфейс. От него наследуются интерфейсы-специализации, которые уже содержат методы для работы с сущностями базы данных. Все эти интерфейсы параметризуются двумя типами: самой сущности и её идентификатора.

CrudRepository – базовый набор операций над сущностями: создание, чтение, изменение и удаление (CRUD).

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

JpaRepository – расширение PagingAndSortingRepository, полноценно реализующее Java Persistence API. Добавляет ряд методов, таких как например flush и deleteInBatch.

MongoRepository – расширение PagingAndSortingRepository, специфичное для MongoDB.

Вспомогательные методы, специфичные для конкретной модели данных, добавляются в пользовательские интерфейсы-наследники. Основываясь на именах добавляемых методов, фреймворк сам создаёт их реализацию.

👉@BookJava

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

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

⚡️  Тест по Java от OTUS
Проверь насколько хорошо ты знаешь Java 

Ответишь — пройдешь на продвинутый курс «Java Developer. Professional» от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса🎁 .

👉  ПРОЙТИ ТЕСТ: 
https://otus.pw/3EaK/?erid=LjN8K21s4

🎫  А ещё, сейчас действуют скидка на курс до 21.04. Возможна оплата в рассрочку! Предложение ограничено.

Хотите протестировать учебный процесс заранее? Регистрируйтесь на открытый урок «Знакомство с Micronaut» 11 апреля

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

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

Дмитрий Тучс — The art of JUnit extensions

В режиме онлайн берем микросервисный проект (Spring Authorization Server, Spring OAuth 2.0 Resource Server) и строим полноценную инфраструктуру для работы с тестовыми данными, авторизацией и другим, используя JUnit Extensions. Только практические навыки, которые будут полезны большинству автоматизаторов на Java.

https://www.youtube.com/watch?v=NFHdzKcU5OU

👉@BookJava

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

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

Советы по использованию Spring Framework 🚀

Используйте аспектно-ориентированное программирование (AOP) в SpringFramework для решения сквозных задач. Реализуйте протоколирование, безопасность и кэширование с помощью @Aspect
и pointcuts. 🔥

👉@BookJava

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

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

Как перейти на Scala: основы и особенности

Расскажет опытный эксперт — Алексей Воронец. На уроке вы:

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

Занятие пройдёт 10 апреля в 20:00 мск в рамках курса «Scala-разработчик». Доступна рассрочка на обучение!

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

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

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

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

Что хранится в файле манифеста?

В JAR архиве можно найти файл META-INF/MANIFEST.MF. Это манифест архива – хранилище его метаинформации. Манифест обычно добавляется той же утилитой, которой собирается jar-файл: maven-jar-plugin, команда JDK jar.

Манифест – текстовый файл, который состоит из заголовков, строчек вида ключ: значение. Заголовки разделены на секции. Файл начинается с главной секции, описывающей метаинформацию всего архива. Следом, отделенные пустыми строками, идут секции для отдельных пакетов и файлов. В них могут переопределяться общие заголовки. JVM игнорирует неизвестные ей заголовки, что позволяет сторонним утилитам хранить в манифесте свою специфичную метаинформацию.

Вот некоторые из часто используемых заголовков:
• Информация об архиве: Manifest-Version, Created-By, Multi-Release, Built-By
• Main-class – точка входа приложения
• Classpath приложения
• Информация об экстеншне (Specification и Implementation, deprecated)
• Заголовки OSGI бандла
• Типы и хэши файлов архива (особенно применимо в Android приложениях)

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

👉@BookJava

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

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

Spring Framework в деталях

SimpleJdbcInsert - Spring Framework JDBC
АОП в Spring Framework
XML-конфигурация АОП в Spring Framework
Транзакции - Spring Framework в деталях

источник

👉@BookJava

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

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

25 расширений Docker для Java-разработчика

Знакомство с миром Docker подобно исследованию огромной игровой площадки компьютерной магии. Каждый раз, когда мы пишем код или настраиваем что-то, мы понимаем, насколько потрясающей может быть контейнеризация. Как разработчики, мы всегда ищем способы сделать нашу работу более плавной и быстрой. Именно здесь на помощь приходят расширения Docker.

https://digma.ai/top-docker-extensions-for-developers/

👉@BookJava

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

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

Начните карьеру в ИТ с гранта на обучение до 100% в Центральном университете!

Грант можно получить на одно из направлений бакалавриата по искусственному интеллекту, разработке и бизнес-аналитике. Помимо диплома и практико-ориентированного образования студенты получат:
- Персонализацию учебной траектории;
- Стажировку в одной из лучших ИТ-компании страны;
- Личного ментора на все время обучения;
- Доступ к современному кампусу в центре Москвы.

Получить полную информацию и оставить заявку можно здесь.
erid:2VtzqxNjMMF
Реклама, АНО ВО «Центральный университет», ИНН 7743418023

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

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

Знаете ли вы, что можно создать полнофункциональное веб-приложение на Java с помощью Spring Initializr? Вот как это сделать за 45 секунд ⚡️

👉@BookJava

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

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

Для чего нужно ключевое слово super?

Как и многие другие ключевые слова, super имеет несколько разных значений в зависимости от контекста:

1. Задать нижнюю границу generic-типа: Consumer<? super Number>
2. Обратиться к члену класса-родителя, который перекрыт (shadowed) членами наследника или локальными переменными: int foo = super.foo
3. Вызвать в конструкторе конструктор родителя: SubClass() { super("subclass param"); }
4. В случае неопределенности, уточнить родительский тип

interface A {
default int foo() { return 1; }
}

interface B {
default int foo() { return 2; }
}

class C implements A, B {
@Override
public int foo() {
return B.super.foo() ;
}
}


👉@BookJava

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

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

Mastering the Main Thread in Java

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

https://www.developer.com/java/java-main-thread/

👉@BookJava

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

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

Распределённые транзакции

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

Каждый из рассмотренных вариантов имеет свои достоинства и недостатки, и может быть применен в промышленной разработке.

https://developers.redhat.com/articles/2021/09/21/distributed-transaction-patterns-microservices-compared

👉@BookJava

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

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

Совет по Spring Boot 🚀

Создание собственного FailureAnalyzer

Перехват исключений при запуске и преобразование их в человекочитаемые сообщения эффективно достигается с помощью анализатора отказов в Spring Boot 🔥.

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto.application.failure-analyzer

👉@BookJava

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

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

🚀 Пристегните ремни: Spring Framework набирает высоту

⚡️ Пройди тест по Java от OTUS и проверь, готов ли ты к обучению на нашем курсе?

Ответишь — пройдешь на продвинутый курс "Разработчик на Spring Framework" от OTUS по специальной цене.

👉 ПРОЙТИ ТЕСТ: https://vk.cc/cvHNJp

🎫 Курс можно приобрести в рассрочку

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

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

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

Как прочитать криптографический ключ?

Для чтения криптографического ключа необходимо использовать классы Java Cryptography Architecture (JCA). Пример кода для чтения криптографического ключа из файла вида PKCS#8 с помощью этих классов может выглядеть следующим образом:

// Загружаем публичный ключ из файла
FileInputStream fis = new FileInputStream("public.pem");
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
byte[] keyBytes = new byte[dis.available()];
dis.readFully(keyBytes);
dis.close();

// Преобразуем байты в объект PublicKey
X509EncodedKeySpec spec = new X509EncodedKeySpec(keyBytes);
KeyFactory kf = KeyFactory.getInstance("RSA");
PublicKey publicKey = kf.generatePublic(spec);


// Используем ключ для выполнения криптографических операций

👉@BookJava

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

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

Совет по Java 🚀

Если вам нужно работать с API, требующим List<String>, но вы хотите работать с текстовыми блоками Java 14, вы можете легко преобразовать их в List. В Java 17 вы можете сначала вызвать lines() для String, который возвращает Stream, а затем непосредственно toList(), который выдает List.

👉@BookJava

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

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

Хотите освоить среду выполнения wasm/wasi и запускать серверные приложения без привязки к операционной системе?

Присоединяйтесь к нашему бесплатному уроку «Wasm на сервере для высоконагруженных систем».

Дата: 09.04 в 20:00 мск

На уроке вы узнаете:
- Основы компиляции приложений в WebAssembly из различных технологий разработки: tinygo, emscripten, cargo.
- Как использовать Docker и NGINX Unit для публикации ваших wasm-приложений.
- Подключение wasm к envoy и публикация как функций в knative.
- Инструменты отладки и оценки производительности опубликованных wasm-приложений с использованием wzprof.
Не упустите возможность погрузиться в мир WebAssembly и трансформировать свою разработку серверных приложений!

После вебинара можно записаться на курс «Highload Architect» от Otus. Курс доступен для приобретения в рассрочку.

Пройдите короткий тест и начните обучение бесплатно: https://vk.cc/cvZDfr

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

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

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

Java 23: Восстановление баланса с помощью примитивных паттернов

Постоянное внедрение сопоставления шаблонов в Java привело к тому, что некоторые функции языка оказались более значимыми, чем другие, и разбалансировали язык. В Java 23 примитивные паттерны исправят эту ситуацию в отношении примитивных типов в instanceof и switch. В этом эпизоде также рассматриваются другие грядущие паттерны ('deconstruction', 'static', 'instance' и 'constant') и показывается, как они будут развивать сопоставление паттернов в Java.

0:00 Intro
1:02 Existing Patterns
1:23 Type Patterns
1:32 Guarded Patterns
1:53 Record Patterns
2:09 Unnamed Patterns
2:29 Nested Patterns
2:50 Summary of Existing Patterns
3:38 Primitive Patterns in instanceof
5:17 Primitive Patterns in switch
6:30 Primitive Patterns when Nested
7:33 Upcoming Patterns
7:59 Deconstruction Patterns
8:40 Static Patterns
9:09 Instance Patterns
9:54 Constant Patterns
10:37 Try JDK 23 EA!

источник

👉@BookJava

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

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

Трассировка в Spring Boot3

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

https://medium.com/javarevisited/tracing-in-spring-boot3-097205dc08f4

👉@BookJava

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

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

Тест по Java от OTUS

Проверь насколько хорошо ты знаешь Java

Ответишь — пройдешь на продвинутый курс «Java Developer. Professional» от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса🎁 .

👉 ПРОЙТИ ТЕСТ: https://otus.pw/W77D/?erid=2VtzqvA68UN

🎫 А ещё, сейчас действуют скидка в честь дня рождения Otus! Возможна оплата в рассрочку! Предложение ограничено.

Хотите протестировать учебный процесс заранее? Регистрируйтесь на открытый урок «Знакомство с Micronaut» 11 апреля


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

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

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

erid: LjN8KTAAY

Как стать DevOps-специалистом всего за полгода и увеличить свой доход минимум в 3 раза?

Привет! Я Марсель Ибраев, Senior system engineer в Core42 Cloud и спикер учебного центра Слёрм. Совместно с ребятами из Честного Знака, Лаборатории Касперского, VK и Jetty Cloud мы запускаем новый крутой проект для всех начинающих DevOps-специалистов /channel/devopsupgrade/90 

На своем канале собрал фишки, которые помогут:
⚡️ начать наконец свой путь в DevOps;
⚡️ освоить базовые компетенции для DevOps-специалиста;
⚡️ стать Junior DevOps и повысить свою стоимость на рынке труда в 3 раза.

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

🔥 Проект ограничен по времени. Залетайте на корабль!

ПОДПИСАТЬСЯ НА КАНАЛ
и забрать роадмап

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

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

На что способны виртуальные потоки Java в обработке файлов

Начнем с того,что я не специалист по Java и у меня нет коммерческого опыта на этом языке. Я просто обычный кодер, который по вечерам пилит проекты на Java, а основной мой стек состоит из PHP и смеси Python + Go. В данной статье хочу с вами поделиться опытом с использованием виртуальных потоках (Virtual Threads) в обработке файлов.

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

👉@BookJava

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

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

Как приложению ограничить доступ к файлу?

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

Внутри менеджера представлен набор методов check*(), которые делегируют выполнение основному методу checkPermission(). Сам доступ, права на который нужно проверить, представляется классом java.security.Permission. Так, доступ к файлу на чтение проверяет метод checkRead. Он передает в checkPermission объект FilePermission с указанным именем файла.

Экземпляр класса SecurityManager, который реализует нужную логику ограничения доступа, можно установить программно методом System.setSecurityManager, или на старте приложения флагом -Djava.security.manager. По умолчанию менеджер не установлен.

Менеджер безопасности изначально был нужен для ограничения апплетов – они выполнялись в браузере пользователя и не должны были получить доступ к локальным пользовательским данным. Сейчас технология апплетов устарела, но SecurityManager остается всё таким же актуальным.

👉@BookJava

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

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

Подборка Telegram каналов для программистов

Системное администрирование 📌
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux


/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)

/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика

/channel/itmozg Программисты, дизайнеры, новости из мира IT.
/channel/phis_mat Обучающие видео, книги по Физике и Математике

/channel/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста

1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus

Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах

GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
/channel/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
/channel/game_devv Все о разработке игр

Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT

Чат программистов📌
/channel/developers_ru

Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов

БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию

QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика

Шутки программистов 📌
/channel/itumor Шутки программистов

Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров

Английский 📌
/channel/UchuEnglish Английский с нуля

Математика 📌
/channel/Pomatematike Канал по математике

Excel лайфхак📌
/channel/Excel_lifehack

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

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

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

В своей второй книге IT-архитектор, методолог, педагог Александр Бындю раскрывает наиболее эффективный на сегодняшний день метод стратегического планирования, получивший название «Карта гипотез». Карта учит, как достигать намеченной цели через гипотезы, и служит навигатором на этом пути. В основу книги легли годы практики, и с уверенностью можно сказать, что Карта гипотез позволяет создать стратегию достижения для самых амбициозных целей.

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

Ознакомиться с книгой

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

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

JPoint 2024 — крупнейшая в России Java-конференция для опытных разработчиков.

Конференция будет проходить весной 2024 года — в течение трех дней: 17 апреля в онлайне и 24–25 апреля в Москве, с возможностью подключиться онлайн.

В программе доклады про архитектуру, фреймворки, языки, эксплуатацию, VM и Runtime. Лучшие практики Java-разработки, использование Spring Boot, работа JVM «под капотом», программирование на Kotlin и других JVM-языках, backend-архитектура и многое другое. Кроме докладов будут воркшопы, мастер-классы, интервью и круглые столы. В этом году будут выступать спикеры из Сбера, Яндекса, VK, Тинькофф, Huawei, Контур, Syntacore, Мир Plat.Form и OZON.

Билеты можно купить за счет компании. Для тех, кто покупает билеты сам, у нас есть промокод на скидку 10%: BOOKJAVA

Реклама. ООО "Вайлдкард". ИНН 7801718607

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

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

Как Java-разработчику сделать прорыв в карьере в 2024?

Прийти на обновленную программу онлайн-курса «Java Developer. Professional» от OTUS! 

✅ Обучение также подходит опытным разработчикам на других языках

В программе вас ждут еще больше вебинаров по наиболее актуальным и сложным темам. Ограниченный стек технологий. Нацеленность на понимание — разбор инструменты изнутри

Выбирайте хард уровень домашних заданий 

💻  Хотите протестировать учебный процесс заранее? Регистрируйтесь на открытый урок «Знакомство с Micronaut» 11 апреля

➡️ Не упусти свой шанс — пройди вступительный тест, и проверь свой уровень: 
https://otus.pw/ZgtL/?erid=LjN8KSozs

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

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

Quarkus — горячий тренд Java-разработки

Quarks ускоряет загрузку Java-приложений в CloudEra
Если вы занимаетесь разработкой Java-приложений, наверняка слышали о революционном фреймворке Quarkus. Если же еще не слышали, вот его краткое описание: Quarkus  —  это Kubernetes-нативный Java-стек, созданный для разработчиков, ставящих во главу угла производительность, гибкость и облачную нативную архитектуру.

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

https://medium.com/javarevisited/exciting-news-in-the-world-of-java-development-4e07766d5a1f

👉@BookJava

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

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

Когда использовать WEB-INF, а когда META-INF?

В корне архива java-приложения часто встречаются директории WEB-INF и META-INF. Обе директории хранят в себе различные файлы с метаинформацией о программе, обычно в текстовом виде: yaml, xml, json, обычный текст.

META-INF используется в архивах всех типов. Главный файл этой директории – MANIFEST.MF. Там же хранятся
• Объявления провайдеров SPI;
• Подпись архива: файлы .SF, .DSA, .RSA;
• INDEX.LIST с подсказками о местонахождении пакетов для загрузчика.
Иногда (не часто) приложения добавляют туда свои статические ресурсы, так как эта директория попадает в classpath и доступна в рантайме.

WEB-INF используется только в web-архивах (.war). Она не заменяет, но дополняет META-INF. В ней хранится:
• Главный файл web-приложения web.xml;
• Дескрипторы тегов .TLD;
• Поддиректория classes/ с классами web-приложения;
• Поддиректория lib/ с .jar-библиотеками зависимостей;
• Поддиректория tag/ с файлами тегов.

👉@BookJava

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