Библиотека Java разработчика
10.8K subscribers
1.14K photos
563 videos
58 files
1.44K links
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.


По всем вопросам @evgenycarter

РКН clck.ru/3KoGeP
Download Telegram
Media is too big
VIEW IN TELEGRAM
Пишем RestApi на SpringBoot Java + MySQL

Spring Initializr 00:00
IntellijIdea 01:34
GetMapping 04:28
Class 06:09
API Layer 08:47
PostMapping 11:20
Подключаем MySQL 13:46
Configuration 19:41
Extra Fields 21:57
DeleteMapping 23:22
PutMapping 26:37
Почти готово 31:42
Обработка исключений 31:59
Унифицируем Response 39:56

источник

👉@BookJava
👍4
Media is too big
VIEW IN TELEGRAM
Два SpringBoot проекта за час: Web и Reactive

Пишем сервис коротких ссылок 2 раза.
В обычном исполнении и в reactive.
База данных - Redis.

00:00 Задача
02:06 Spring Initialzr
03:27 AnotherRedisClient
04:22 IntelliJ IDEA Spring Web
06:05 Общий и не общий код
06:24 Queue
10:29 Class для хранения в BD
11:47 RedisConfiguration
15:09 Service работы со ссылками
20:54 Job имитация активности
25:19 SpringWeb - Готов
25:51 @ RestController
29:09 IntelliJ IDEA Reactive Web
30:01 LinksService interface
32:19 LinkServiceReactive #1
32:41 RedisConfiguration Reactive
37:35 LinksServiceReactive #2
40:30 Job Reactive
46:00 Важный фальстарт
48:08 Reactive Rest Controller
50:19 ShellScript
57:18 Bash Test
1:00:34 Мега вывод)

источник

👉@BookJava
👍7👎1
Media is too big
VIEW IN TELEGRAM
Java spring cache: основы кэширования за 16 минут

00:00 - Определение кэширования
00:25 - Пишем код примера
02:35 - Включаю кэширование, аннотации EnableCaching Cacheable
03:11 - Пример несогласованности данных
05:07 - Обновляю кэш, аннотация CachePut
06:39 - Очищаю кэш, аннотация CacheEvict
08:08 - Пример с использованием аргумента в кэшируемом методе
11:00 - Полное очищение кеша, CacheEvict (allEntries = true)
11:34 - Объявляю название кэша на все методы класса, аннотация CacheConfig
12:05 - Использую CacheManager напрямую
13:28 - Показываю класс Cache в дебаггере
14:35 - Как выглядят ключи в кэше (SimpleKey)
15:55 - Настраиваю ключ

источник

👉@BookJava
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Графический интерфейс для bash, делаем работу в командной строке удобнее

Когда пишешь код в IntelliJ IDEA, привыкаешь что везде есть подсказки, везде где можно работает комплишен, всегда можно одним кликом перейти на декларацию метода или на его юсаджи. После этого интерфейс командной строки выглядит как-то бедно. Конечно, он очень хорошо продуман, сделан настолько удобным, насколько это возможно в текстовом UI, но в графическом UI возможностей намного больше. Представляю вам плагин для JetBrains IDE, позволяющий работать в командной строке cо всеми удобствами IDE.

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

👉@BookJava
👍5👎1
Media is too big
VIEW IN TELEGRAM
SpringBoot + WebSocket Fullstack. Мелим муку - многопоточность Java

00:00 Описание проекта
03:31 Spring Initialzr
04:04 Директория проекта
04:36 Intellij Idea
04:44 GSON
05:33 NodeJS download
06:07 NuxtJS
08:25 Импорт UI модуля
08:53 Запускаем UI
09:22 Базовая верстка
14:24 Скачаем картинки
16:07 ProgressBar
18:56 Backend
19:25 Engine Двигатель
20:48 Цех Machine
21:23 Ресурсы мельницы
22:23 Мельница
22:56 Водяное колесо
28:11 Цех: Жернова
34:04 Мельница - Конструктор
35:35 MillState
37:02 Мельница - MillState
38:15 Наполняем MillState
39:51 MillController
42:00 MillService
47:04 Java WebSocket
50:31 Vuex
54:53 Используем Vuex в UI
56:59 Axios Proxy
59:53 WebSocket UI
01:04:07 Анимируем UI
01:10:52 Благодарность

Исходники: https://github.com/azim-ut/mill_java

источник

👉@BookJava
👍8
Многие разработчики Java часто упускают из виду возможности функционального программирования. Узнайте, как использовать цепочки Optional и Either для написания лаконичного и красивого кода.

https://dzone.com/articles/the-beauty-of-java-optional-and-either

👉@BookJava
👍1
Версионная миграция данных в мире DTO

В этой публикации я хотел бы показать несколько известных мне подходов к версионной миграции данных в контексте DTO. Примеры будут продемонстрированы на языке Java.

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

👉@BookJava
👍5
Media is too big
VIEW IN TELEGRAM
Spring Security, Формы регистрации и аутентицикации.

04:00 Spring Initializr
06:24 Доп. боблиотеки
09:09 AUTH: Properties
12:17 UserDetails
16:46 UserRepository
17:45 AppUserDetailsService
19:30 AppUser + Annotations
38:33 JwtTokenFilter
44:46 WebSecurityConfig
49:54 Список фильтров
51:20 Auth: Bean package
58:39 RegistrationService
58:39 RegistrationService
1:00:07 Auth: signUpUser
1:03:37 PasswordEncoder
1:08:00 AuthController
1:20:11 LoginService
1:21:48 ProviderManager
1:27:25 Logn: проверка пароля
1:30:01 AuthenticationException
1:31:05 Что вернет Authentication?
1:37:19 Auth: Start
1:37:58 Properties debug
1:38:23 authenticationManagerBean
1:40:08 Client проект
1:40:23 Client properties.yaml
1:42:04 Client: JwtSettingsProvider
1:43:49 Client: CurrentUser
1:44:00 Clients: CurrentUserProvider
1:46:36 Client: AccessFilter
1:56:01 Auth: api/v1/auth/current
1:58:11 Auth: api/v1/auth/logout
1:59:50 Client: api/v1/client/access
2:02:09 UI: NuxtJS
2:02:16 UI: Axios Proxy
2:03:40 UI: Vuex
2:07:36 UI: HTML + формы
2:14:45 Csrf ON
2:15:08 Auth: NPE fix
2:16:12 Запуск и проверка
2:18:05 Csrf проблемка
2:20:27 Спасибо!

GitHub: https://github.com/azim-ut/spring_auth

источник

👉@BookJava
👍12
Spring-потрошитель: жизненный цикл Spring Framework

Ни для кого не секрет, что Spring Framework один из самых популярных фреймворков для приложений на языке Java. Он интегрировал в себя самые полезные и актуальные технологии, такие как i18n, JPA, MVC, JMS, Cloud и т.п.

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

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

👉@BookJava
👍4
Media is too big
VIEW IN TELEGRAM
Диспетчерская на базе Spring и Kafka. Полный курс.

Разворачиваем кафка на Docker, слушаем, публикуем и обрабтываем сообщения с помощью Spring.
В качестве обертки - делаем проект для распределения маршрутов самолтеов.

GitHub: https://github.com/azim-ut/youtube_kafka_jet

источник

👉@BookJava
👍5🔥21
Media is too big
VIEW IN TELEGRAM
Java. Класс Object. Разбор вопросов на собеседование.

В данном видео я разбираю вопросы по классу Object на собеседование для начинающих Java разработчиков. Это вопросы из моего личного списка, те что я сам время от времени задаю.
Привожу их тут, чтобы помочь в подготовке, так как практика показывает, что часто этим вопросам уделяется недостаточно внимания:
1.Все классы в Java наследуются от Object, как вы думаете, почему так сделано?
2.Можно ли создать экземпляр класса Object?
3.Зачем кому-то может понадобится создавать экземпляр класса Object?
4.Опишите методы класса Object.
5.Особенности методов wait, notify, notifyAll
6.Что такое хэш-код. Что за значение позвращает метод hashCode класса Object?
7.Как связаны между собой методы equals и hashCode? Что будет, если переопределить equals не переопределяя hashCode? Что будет если у объекта-ключа HashMap изменится хэш-код? Какие могут возникнуть проблемы?
8.Метод finalize, для чего нужен?

источник

👉@BookJava
👍8
Java для сисадминов

Эта статья написана в основном для системных администраторов Java-приложений (DevOps-инженеров, SRE и других производных специализаций). Вероятнее всего, Java-разработчики уже все это прекрасно знают. Хотя Junior Java-разработчикам эта информация может помочь систематизировать знания.

Статья не претендует на полноту или полную непогрешимость. Во-первых, нельзя объять необъятное. Во-вторых, все меняется и проверенные истины могут перестать быть истинами в новых версиях. В сети существует множество статей об устройствах Java, однако в этой статье в блоге ЛАНИТ я стремился сделать выжимку основных моментов, необходимых для администраторов Java-приложений. Для более глубокого погружения в тот или иной вопрос потребуется обратиться к другим источникам.

https://habr.com/ru/companies/lanit/articles/721210/

👉@BookJava
👍4
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
👍5
Java

Spring Initializr: создаём maven-проект на Java
Spring Initializr: создаём maven-проект на Java в IntelliJ Idea Ultimate Edition
Алгоритмы: пузырьковая сортировка на Java
Коллекции в Java: очередь и стек
Коллекции в Java: List, Set и Map
Парсинг HTML страниц на Java с помощью Jsoup
Алгоритмы: проверка вложенных скобок на Java
Алгоритмы: поиск простых чисел на Java

источник

👉@BookJava
👍7