Это очень подробный пост о проблеме, которую мы наблюдали в Virtual Threads с " pinning" в Netflix.
https://netflixtechblog.com/java-21-virtual-threads-dude-wheres-my-lock-3052540e231d
#Java #VirtualThreads
👉@BookJava
https://netflixtechblog.com/java-21-virtual-threads-dude-wheres-my-lock-3052540e231d
#Java #VirtualThreads
👉@BookJava
👍3
Совет по JPA 🚀
Упростите свои #Java модели данных, встраивая сложные типы непосредственно в ваши сущности с помощью аннотации
#Hibernate #SpringBoot #JavaDevelopment #ORM
👉@BookJava
Упростите свои #Java модели данных, встраивая сложные типы непосредственно в ваши сущности с помощью аннотации
@Embedded в @JPA! Это идеально подходит для многократно используемых компонентов, таких как адреса. 🔥#Hibernate #SpringBoot #JavaDevelopment #ORM
👉@BookJava
👍7
Совет по
Если вы используете параметр
#Java
👉@BookJava
@SpringDataЕсли вы используете параметр
hibernate.use_sql_comments, чтобы показать, какой запрос JPQL вызвал какой SQL запрос, вы можете дополнительно использовать аннотацию (@)Meta из Spring Data JPA, чтобы задать пользовательский комментарий для вашего JPQL запроса.#Java
👉@BookJava
👍3🔥2🥰1
🚀 Совет по 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.nio.file.WatchService - мониторинг событий файловой системы в реальном времени. Обнаружение изменений файлов и директорий независимо от платформы. 🔥
https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/file/WatchService.html
#Java #JavaAPI
👉@BookJava
Oracle
WatchService (Java SE 22 & JDK 22)
declaration: module: java.base, package: java.nio.file, interface: WatchService
👍5🥱2
Советы по Spring Boot💡
Улучшите сборку образа контейнера
https://paketo.io/docs/howto/java/#install-a-minimal-jre-with-jlink
#SpringBoot #Java
👉@BookJava
Улучшите сборку образа контейнера
@springboot с помощью #Jlink! https://paketo.io/docs/howto/java/#install-a-minimal-jre-with-jlink
#SpringBoot #Java
👉@BookJava
👍5
Совет по Spring Boot💡
Улучшите сборку образа контейнера
https://paketo.io/docs/howto/java/#install-a-minimal-jre-with-jlink
#SpringBoot #Java
👉@BookJava
Улучшите сборку образа контейнера
@springboot с помощью #Jlink! 🔥https://paketo.io/docs/howto/java/#install-a-minimal-jre-with-jlink
#SpringBoot #Java
👉@BookJava
❤5👍1
Советы по Spring Batch 💡
Оптимизируйте свои шаги в
#Java #SpringBatch
👉@BookJava
Оптимизируйте свои шаги в
@SpringBatch с помощью параметра `startLimit` и определите, сколько раз можно запустить шаг. 🔥#Java #SpringBatch
👉@BookJava
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Знали ли вы, что вы можете перетащить класс или запись #Java в
👉@BookJava
@vaadin Copilot, чтобы автоматически сгенерировать для него форму? Теперь вы знаете ✨👉@BookJava
👍7
Java Language Futures - Fall 2024 Edition
0:00 - Intro
3:54 - Records
9:14 - Sealed classes
11:22 - Pattern matching
20:00 - Data Oriented Programming
29:00 - Implicitly declared classes & instance main methods
33:20 - with Expressions
38:20 - Flexible constructor bodies
48:10 - What's next
50:53 - Conclusion
https://www.youtube.com/watch?v=NNPN5tvjzqA
👉@BookJava
0:00 - Intro
3:54 - Records
9:14 - Sealed classes
11:22 - Pattern matching
20:00 - Data Oriented Programming
29:00 - Implicitly declared classes & instance main methods
33:20 - with Expressions
38:20 - Flexible constructor bodies
48:10 - What's next
50:53 - Conclusion
https://www.youtube.com/watch?v=NNPN5tvjzqA
👉@BookJava
YouTube
Java Language Futures - Fall 2024 Edition
_The Java Programming Language is evolving fast. In this talk we’ll summarise many of the recent changes that have appeared as well as looking ahead to directions and features that are in development and will appear in future editions._
Presented by *Gavin…
Presented by *Gavin…
👍4
@Hibernate можно использовать только для отношений, но не для простых (базовых) атрибутов. Чтобы она работала и для полей, необходимо использовать байткод-энхансмент через плагин. В этом случае поля, отмеченные как
lazy, будут загружаться при первом обращении к ним.#Java #JPA
👉@BookJava
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Media is too big
VIEW IN TELEGRAM
Хранилище файлов. 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 + 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
👍5
@TransactionalEventListener — это специализированная версия @EventListener, которая прослушивает событие и ждёт завершения текущей транзакции, прежде чем сработать. Ожидание согласованного состояния базы данных позволяет безопаснее реагировать на изменения, внесённые в БД ✨
#Java #springboot
👉@BookJava
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4
☕️ Spring Core: Зачем нужна аннотация
Если вы работаете со Spring, вы видите эту аннотацию постоянно. Но чем она отличается от простого навешивания
💡 Что это такое?
Аннотация
🛠 Как это выглядит?
🔥 Когда использовать
Это самый частый вопрос на собеседованиях.
1. Используйте
- Это ваш класс. Вы имеете доступ к исходному коду.
- Вам нужна магия автоматического сканирования (
2. Используйте
- Сторонние библиотеки. Вы не можете зайти в класс
- Сложная логика создания. Если создание объекта требует условий (
⚙️ Фишки
- Имена: По умолчанию имя бина совпадает с именем метода. Можно изменить:
- Init/Destroy: Можно указать методы, которые сработают при создании или удалении бина:
- Зависимости: Если методу с
Итог:
#Java #Spring #SpringBoot #Coding #Education
📲 Мы в MAX
👉@BookJava
@Bean?Если вы работаете со Spring, вы видите эту аннотацию постоянно. Но чем она отличается от простого навешивания
@Component над классом? Давайте разберем.💡 Что это такое?
Аннотация
@Bean используется в методах конфигурационных классов (помеченных @Configuration). Она говорит Spring-контейнеру:"Эй, Spring! Выполни этот метод, возьми то, что он вернет, и сохрани этот объект у себя в контексте (ApplicationContext). Управляй им как бином".
🛠 Как это выглядит?
@Configuration
public class AppConfig {
// Мы явно создаем объект и отдаем его Спрингу
@Bean
public ObjectMapper objectMapper() {
return new ObjectMapper(); // Например, библиотека Jackson
}
}
🔥 Когда использовать
@Bean, а когда @Component?Это самый частый вопрос на собеседованиях.
1. Используйте
@Component (и @Service, @Repository), когда:- Это ваш класс. Вы имеете доступ к исходному коду.
- Вам нужна магия автоматического сканирования (
component scanning). Вы просто ставите аннотацию над классом, и Spring сам его находит.2. Используйте
@Bean, когда:- Сторонние библиотеки. Вы не можете зайти в класс
ObjectMapper (из Jackson) или AmazonS3Client и написать там @Component, потому что это чужой код (read-only). Чтобы добавить такой объект в контекст Spring, вы создаете для него метод с @Bean.- Сложная логика создания. Если создание объекта требует условий (
if/else) или сложной конфигурации, проще описать это в методе явно.⚙️ Фишки
@Bean- Имена: По умолчанию имя бина совпадает с именем метода. Можно изменить:
@Bean("myCoolBean").- Init/Destroy: Можно указать методы, которые сработают при создании или удалении бина:
@Bean(initMethod = "init", destroyMethod = "cleanup").- Зависимости: Если методу с
@Bean нужны аргументы, Spring автоматически найдет и подставит их из контекста.Итог:
@Component - для автоматизации своих классов, @Bean - для ручного контроля и чужих библиотек.#Java #Spring #SpringBoot #Coding #Education
👉@BookJava
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1