This media is not supported in your browser
VIEW IN TELEGRAM
Вы предпочитаете размещать вызовы связанных методов на отдельной строке? 👩💻
Тогда выберите вызовы методов, откройте «Действия с намерением» (Alt+Enter) и откройте меню для настройки стиля кода. На вкладке «Перенос и скобки» установите параметр «Связанные вызовы методов» в значение «Всегда переносить».
👉 Java Portal | #tips
Тогда выберите вызовы методов, откройте «Действия с намерением» (Alt+Enter) и откройте меню для настройки стиля кода. На вкладке «Перенос и скобки» установите параметр «Связанные вызовы методов» в значение «Всегда переносить».
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3
Совет по Java API
Используйте🔥
Это помогает предотвратить случайное добавление нескольких абстрактных методов в интерфейс, помеченный как функциональный. Если вы попытаетесь добавить еще один абстрактный метод в функциональный интерфейс, компилятор выдаст ошибку.
👉 Java Portal | #tips
Используйте
@FunctionalInterface
в качестве защиты от ошибок компилятора! Это помогает предотвратить случайное добавление нескольких абстрактных методов в интерфейс, помеченный как функциональный. Если вы попытаетесь добавить еще один абстрактный метод в функциональный интерфейс, компилятор выдаст ошибку.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2🤣2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Генерируйте шаблонный код, например, конструкторы, геттеры и сеттеры.👩💻
Используйте
👉 Java Portal | #tips
Используйте
⌘N
(macOS) / Alt+Insert
(Windows/Linux)
для вызова меню "Generate", затем выберите Constructor, Getter, Setter или Getter and Setter, а также укажите поля, которые нужно включить.Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥1
Чтобы сделать большие и сложные цепочки компараторов более читаемыми, мне нравится присваивать компараторы переменным, имена которых начинаются с "by".
Таким образом, вызов
sorted()
становится меньше и читается почти как естественный язык. Кроме того, вы можете использовать статический импорт.Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🤔5
JWT в Spring Boot: Используется вместе с Spring Security для аутентификации пользователей в REST API.
JWT (JSON Web Token) – это компактный, безопасный для URL токен, используемый для безопасной аутентификации и авторизации. Он состоит из трех частей:
🍩 Заголовок (Header) → Содержит тип токена (JWT) и алгоритм подписи (например, HS256).
🍩 Полезная нагрузка (Payload) → Содержит утверждения (claims) – информацию о пользователе, роли, срок действия и т. д.
🍩 Подпись (Signature) → Обеспечивает целостность токена и создается с использованием секретного ключа.
Зачем использовать JWT?
☑ Бесстейтная аутентификация (не требуется хранение сессии).
☑ Безопасная передача данных между клиентом и сервером.
☑ Можно использовать в API для авторизации.
👉 Java Portal | #tips
JWT (JSON Web Token) – это компактный, безопасный для URL токен, используемый для безопасной аутентификации и авторизации. Он состоит из трех частей:
Зачем использовать JWT?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🔥3
Одна из подводных камней при использовании аннотации
В приведенном выше коде можно ожидать, что первый вызов
👉 Java Portal | #tips
@Transactional
в java с @springframework
— это самовызов метода. В приведенном выше коде можно ожидать, что первый вызов
save()
будет откатан, но этого не произойдет. Чтобы все работало правильно, метод с аннотацией @Transactional
должен быть вызван из другого сервиса.Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍4🔥2
В Java может быть неясно, относится ли аннотация к объявлению, к типу или к обоим одновременно.
Это происходит в полях, методах, локальных переменных и других случаях.
В таких ситуациях понимание того, что именно аннотируется, зависит от значения мета-аннотации
👉 Java Portal | #tips
Это происходит в полях, методах, локальных переменных и других случаях.
В таких ситуациях понимание того, что именно аннотируется, зависит от значения мета-аннотации
@Target
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
В Java может быть неясно, применяется ли аннотация к объявлению, к типу или к обоим.
Это происходит с полями, методами, локальными переменными и другими элементами.
🧠 В таких случаях, чтобы понять, что именно аннотируется, нужно учитывать значение мета-аннотации
👉 Java Portal | #tips
Это происходит с полями, методами, локальными переменными и другими элементами.
@Target.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Управляйте своим проектом как профессионал и повышайте продуктивность с лучшим сочетанием клавиш в IntelliJIDEA 👩💻
Используйте ⇧⇧ | Shift+Shift, чтобы мгновенно найти:
🟢 Классы, файлы, символы, действия или текст
🟢 Настройки редактора
🟢 Элементы интерфейса и многое другое! 🔥
👉 Java Portal | #tips
Используйте ⇧⇧ | Shift+Shift, чтобы мгновенно найти:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👀4🔥3
Шпаргалка по GitHub для начинающих
Этот список команд помогает пользователям быстро освоить базовые операции при работе с Git и GitHub.
👉 Java Portal | #tips
Этот список команд помогает пользователям быстро освоить базовые операции при работе с Git и GitHub.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥2
Виды Dependency Injection в Spring Boot:
Инъекция через поля (Field Injection)
☑ Плюсы: Простота и краткость.
❌ Минусы: Трудно тестировать из-за приватности полей.
Инъекция через сеттеры (Setter Injection)
☑ Плюсы: Позволяет повторно внедрять зависимости при необходимости.
❌ Минусы: Делает зависимости изменяемыми, что может привести к ошибкам во время выполнения.
Инъекция через конструктор (Constructor Injection)
☑ Плюсы: Гарантирует неизменяемость и обеспечивает наличие всех необходимых зависимостей.
❌ Минусы: Требует больше шаблонного кода, если не использовать Lombok.
👉 Java Portal | #tips
Инъекция через поля (Field Injection)
Инъекция через сеттеры (Setter Injection)
Инъекция через конструктор (Constructor Injection)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3❤2
Чтобы заставить её работать, необходимо использовать усиление байткода через плагин. Тогда поля, помеченные как ленивые, будут загружаться при первом обращении к ним.
Это делается через Maven-плагин
hibernate-enhance-maven-plugin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🌭4🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2
Совет: если в Java Map нужно хранить несколько значений для одного ключа, можно использовать Apache Commons MultiValuedMap. Вы добавляете значения, а MultiValuedMap хранит их в List или Set.
👉 Java Portal | #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤4🔥2