Библиотека джависта | Java, Spring, Maven, Hibernate
24.2K subscribers
1.97K photos
38 videos
42 files
2.78K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Друзья, в этом месяце состоялся релиз новой версии Spring Framework 6 и должен состояться релиз новой версии Spring Boot 3! 😃

В предложенном сегодня видео Josh Long продемонстрирует современный, опережающий свое время движок для компиляции в Spring Framework 6 и Spring Boot 3, повышающий скорость работы приложения и эффективность используемой памяти.

Приятного просмотра!
👍11
Сколько строк сможет заполнить пропуск без ошибки компиляции?
Anonymous Quiz
14%
0
11%
1
5%
2
8%
3
5%
4
4%
5
52%
Узнать ответ
😁17👍6🤔4🔥1
🧑‍💻 Всем привет! На связи «Библиотека программиста»

Мы переезжаем с текущего офиса в центре Москвы с идеальной локацией — рядом метро и все необходимое.

Если у кого-то есть знакомые, которым нужно хорошее пространство на 5 человек, например, взамен коворкингу, то это идеальный вариант.

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

Адрес: https://yandex.ru/maps/-/CCUfFIa2-D

Записаться на просмотр: https://proglib.tech/w/c9e8bf63
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔7👍3
Если посмотреть код внутри созданной JSP страницы, то он будет выглядеть как HTML и не будет похож на java класс. Конвертацией JSP страниц в HTML код занимается контейнер, который так же создает и сервлет для использования в веб приложении.

#вопросы_с_собеседований
Расскажите об этапах (фазах) жизненного цикла JSP.

Жизненный цикл JSP состоит из нескольких фаз, которыми руководит JSP контейнер:
• Translation – проверка и парсинг кода JSP страницы для создания кода сервлета.
• Compilation – компиляция исходного кода сервлета.
• Class Loading – загрузка скомпилированного класса в память.
• Instantiation – внедрение конструктора без параметра загруженного класса для инициализации в памяти.
• Initialization – вызов init() метода объекта JSP класса и инициализация конфигурации сервлета с первоначальными параметрами, которые указаны в дескрипторе развертывания (web.xml). После этой фазы JSP способен обрабатывать запросы клиентов. Обычно эти фазы происходят после первого запроса клиента (т.е. ленивая загрузка), но можно настроить загрузку и инициализацию JSP на старте приложения по аналогии с сервлетами.
• Request Processing – длительный жизненный цикл обработки запросов клиента JSP страницей. Обработка является многопоточной и аналогична сервлетам — для каждого запроса создается новый поток, объекты ServletRequest и ServletResponse, происходит выполнение сервис методов.
• Destroy – последняя фаза жизненного цикла JSP, на которой её класс удаляется из памяти. Обычно это происходит при выключении сервера или выгрузке приложения.
👍8🤔2
Друзья, Spring Boot 3.0 стал доступен в репозитории Maven! 😃

Spring Boot 3.0 это:
✔️ 12 месяцев работы 151 разработчика
✔️ 5700 коммитов
✔️ Работа в Java 17+
✔️ Работа в пространстве имен Jakarta EE9+ и Jakarta EE 10 API
и многое другое.

Подробности в предложенном релизе.

Читать статью
👍13
Рекомендации по миграции на Spring 6

Буквально на днях вышла новая версия Spring Framework, особенностью которой является поддержка Java 17, Hibernate 6.1/Jakarta Persistence 3.1 и др. 😃

Статья от Vlad Mihalcea представляет собой рекомендации по миграции с более ранних версий фреймворка к новой версии.

Хорошей практики!

Читать статью
👍9
Какие области видимости переменных существуют в JSP?

Область видимости объектов определяется тем контекстом, в который помещается данный объект. В зависимости от той или иной области действия так же определяется время существования объекта.

В JSP предусмотрены следующие области действия переменных (объектов):
request область действия запроса - объект будет доступен на текущей JSP странице, странице пересылки (при использовании jsp:forward) или на включаемой странице (при использовании jsp:include);
session область действия сессии - объект будет помещен в сеанс пользователя, будет доступен на всех JSP страницах и будет существовать пока существует сессия пользователя, или он не будет из нее принудительно удален.
application область действия приложения - объект будет доступен для всех пользователей на всех JSP страницах и будет существовать на протяжении всей работы приложения или пока не будет удален принудительно и контекста приложения.
page область действия страницы - объект будет доступен только на той странице, где он определен. На включаемых (jsp:include) и переадресуемых (jsp:forward) страницах данный объект уже не будет доступен.

Таким образом, чтобы объект был доступен всем JSP страницам, необходимо указать область видимости application или session, в зависимости от того требуется ли доступ к объекту всем пользователям или только текущему.

Для указания требуемой области действия при определении объекта на JSP странице используется атрибут scope тега jsp:useBean:

<id="myBean" class="ru.javacore.MyBean" scope="session"/>

Если не указывать атрибут scope, то по умолчанию задается область видимости страницы page.
👍6
📜 15 лучших практик SQL после 20 лет программирования

Даже если ваш SQL-код работает правильно, его все равно можно улучшить, в частности в том, что касается производительности и читаемости. В статье перечислены лучшие практики составления SQL-запросов, которым вы должны следовать, чтобы сделать ваш код более легким для чтения и понимания.

🔗 Основной сайт
🔗 Зеркало
👍4
Создаем умные типы данных при помощи records и enums

Друзья, предложенную сегодня статью написал Брюс Эккель, автор книги "Философия Java".

Основываясь на функциональном подходе конструирования типов Java, используя "записи" (records) и перечисляемые типы (enums), Брюс научит вас получать объекты с корректными значениями. 🤔

Приятного чтения!

Читать статью
👏3👍1
#вопросы_с_собеседований
Каким образом из вложенного класса получить доступ к полю внешнего класса?

Статический вложенный класс имеет прямой доступ только к статическим полям обрамляющего класса.

Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например: Outer.this.field.
👍7
🧵 Введение в многопоточность в Java. Часть 2. Жизненный цикл потоков, Thread.join() и потоки-демоны

В этой части узнаем, какие состояния проходят потоки в своем жизненном цикле, что такое ожидание потоков и что такое потоки-демоны.

🔗 Основной сайт
🔗 Зеркало
👍4
Сборка мусора в неисправных JVM, проактивный подход

Команда Netflix Cloud Data Engineering работает с различными приложениями для JVM, включая такие популярные хранилища данных, как Cassandra и Elasticsearch. Хотя большинство наших кластеров стабильно работают, обходясь выделенной им памятью, иногда «запрос смерти» или ошибка в самом хранилище данных приводят к перерасходу памяти, что может спровоцировать лишние циклы сборки мусора или даже привести к исчерпанию памяти в JVM.

https://habr.com/ru/company/timeweb/blog/700224/
👍1
Создаем умные типы данных при помощи records и enums

Друзья, предложенную сегодня статью написал Брюс Эккель, автор книги "Философия Java".

Основываясь на функциональном подходе конструирования типов Java, используя "записи" (records) и перечисляемые типы (enums), Брюс научит вас получать объекты с корректными значениями.
🤔

Приятного чтения!

https://blogs.oracle.com/javamagazine/post/java-smarter-types-records-enums
👍3