Друзья, в этом месяце состоялся релиз новой версии Spring Framework 6 и должен состояться релиз новой версии Spring Boot 3! 😃
В предложенном сегодня видео Josh Long продемонстрирует современный, опережающий свое время движок для компиляции в Spring Framework 6 и Spring Boot 3, повышающий скорость работы приложения и эффективность используемой памяти.
Приятного просмотра!
В предложенном сегодня видео Josh Long продемонстрирует современный, опережающий свое время движок для компиляции в Spring Framework 6 и Spring Boot 3, повышающий скорость работы приложения и эффективность используемой памяти.
Приятного просмотра!
YouTube
Spring Tips: the road to Spring Boot 3: ahead-of-time compilation and GraalVM
Hi, Spring fans! In this installment of Spring Tips, we look at everything you ever wanted (and didn't) to know about the fantastic new ahead-of-time (AOT) compilation engine in Spring Framework 6 and Spring Boot 3 (due out November 24th, 2022!) that supports…
Сколько строк сможет заполнить пропуск без ошибки компиляции?
Anonymous Quiz
14%
0
11%
1
5%
2
8%
3
5%
4
4%
5
52%
Узнать ответ
Мы переезжаем с текущего офиса в центре Москвы с идеальной локацией — рядом метро и все необходимое.
Если у кого-то есть знакомые, которым нужно хорошее пространство на 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
Если посмотреть код внутри созданной 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, на которой её класс удаляется из памяти. Обычно это происходит при выключении сервера или выгрузке приложения.
#вопросы_с_собеседований
Расскажите об этапах (фазах) жизненного цикла JSP.
Жизненный цикл JSP состоит из нескольких фаз, которыми руководит JSP контейнер:
• Translation – проверка и парсинг кода JSP страницы для создания кода сервлета.
• Compilation – компиляция исходного кода сервлета.
• Class Loading – загрузка скомпилированного класса в память.
• Instantiation – внедрение конструктора без параметра загруженного класса для инициализации в памяти.
• Initialization – вызов init() метода объекта JSP класса и инициализация конфигурации сервлета с первоначальными параметрами, которые указаны в дескрипторе развертывания (web.xml). После этой фазы JSP способен обрабатывать запросы клиентов. Обычно эти фазы происходят после первого запроса клиента (т.е. ленивая загрузка), но можно настроить загрузку и инициализацию JSP на старте приложения по аналогии с сервлетами.
• Request Processing – длительный жизненный цикл обработки запросов клиента JSP страницей. Обработка является многопоточной и аналогична сервлетам — для каждого запроса создается новый поток, объекты ServletRequest и ServletResponse, происходит выполнение сервис методов.
• Destroy – последняя фаза жизненного цикла JSP, на которой её класс удаляется из памяти. Обычно это происходит при выключении сервера или выгрузке приложения.
Друзья, Spring Boot 3.0 стал доступен в репозитории Maven! 😃
Spring Boot 3.0 это:
✔️ 12 месяцев работы 151 разработчика
✔️ 5700 коммитов
✔️ Работа в Java 17+
✔️ Работа в пространстве имен Jakarta EE9+ и Jakarta EE 10 API
и многое другое.
Подробности в предложенном релизе.
Читать статью
Spring Boot 3.0 это:
✔️ 12 месяцев работы 151 разработчика
✔️ 5700 коммитов
✔️ Работа в Java 17+
✔️ Работа в пространстве имен Jakarta EE9+ и Jakarta EE 10 API
и многое другое.
Подробности в предложенном релизе.
Читать статью
Spring Boot 3.0 Goes GA
Level up your Java code and explore what Spring can do for you.
Рекомендации по миграции на Spring 6
Буквально на днях вышла новая версия Spring Framework, особенностью которой является поддержка Java 17, Hibernate 6.1/Jakarta Persistence 3.1 и др. 😃
Статья от Vlad Mihalcea представляет собой рекомендации по миграции с более ранних версий фреймворка к новой версии.
Хорошей практики!
Читать статью
Буквально на днях вышла новая версия Spring Framework, особенностью которой является поддержка Java 17, Hibernate 6.1/Jakarta Persistence 3.1 и др. 😃
Статья от Vlad Mihalcea представляет собой рекомендации по миграции с более ранних версий фреймворка к новой версии.
Хорошей практики!
Читать статью
Vlad Mihalcea
The best way to do the Spring 6 migration - Vlad Mihalcea
The Spring 6 Migration Guide will show you how to migrate an existing application to and how to get the most out of this upgrade.
Какие области видимости переменных существуют в 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
.DDD, HEXAGON, HIBERNATE, не считая JOOQ. Часть 2: гексагональная архитектура
https://habr.com/ru/company/rshb/blog/700790/
https://habr.com/ru/company/rshb/blog/700790/
Хабр
DDD, HEXAGON, HIBERNATE, не считая JOOQ. Часть 2: гексагональная архитектура
Продолжаем серию публикаций для java разработчиков, создающих системы со сложной предметной областью, первую часть можно почитать здесь. В новой статье поговорим о гексагональной архитектуре. Источник...
📜 15 лучших практик SQL после 20 лет программирования
Даже если ваш SQL-код работает правильно, его все равно можно улучшить, в частности в том, что касается производительности и читаемости. В статье перечислены лучшие практики составления SQL-запросов, которым вы должны следовать, чтобы сделать ваш код более легким для чтения и понимания.
🔗 Основной сайт
🔗 Зеркало
Даже если ваш SQL-код работает правильно, его все равно можно улучшить, в частности в том, что касается производительности и читаемости. В статье перечислены лучшие практики составления SQL-запросов, которым вы должны следовать, чтобы сделать ваш код более легким для чтения и понимания.
🔗 Основной сайт
🔗 Зеркало
Создаем умные типы данных при помощи records и enums
Друзья, предложенную сегодня статью написал Брюс Эккель, автор книги "Философия Java".
Основываясь на функциональном подходе конструирования типов Java, используя "записи" (records) и перечисляемые типы (enums), Брюс научит вас получать объекты с корректными значениями. 🤔
Приятного чтения!
Читать статью
Друзья, предложенную сегодня статью написал Брюс Эккель, автор книги "Философия Java".
Основываясь на функциональном подходе конструирования типов Java, используя "записи" (records) и перечисляемые типы (enums), Брюс научит вас получать объекты с корректными значениями. 🤔
Приятного чтения!
Читать статью
Oracle
Build smarter Java types with records and enums
Taking a functional approach to Java type design using Java’s new record keyword to guarantee that each constructed object is a legal value.
#вопросы_с_собеседований
Каким образом из вложенного класса получить доступ к полю внешнего класса?
Статический вложенный класс имеет прямой доступ только к статическим полям обрамляющего класса.
Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например:
Каким образом из вложенного класса получить доступ к полю внешнего класса?
Статический вложенный класс имеет прямой доступ только к статическим полям обрамляющего класса.
Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например:
Outer.this.field
.☕🧵 Введение в многопоточность в Java. Часть 2. Жизненный цикл потоков, Thread.join() и потоки-демоны
В этой части узнаем, какие состояния проходят потоки в своем жизненном цикле, что такое ожидание потоков и что такое потоки-демоны.
🔗 Основной сайт
🔗 Зеркало
В этой части узнаем, какие состояния проходят потоки в своем жизненном цикле, что такое ожидание потоков и что такое потоки-демоны.
🔗 Основной сайт
🔗 Зеркало
Сборка мусора в неисправных JVM, проактивный подход
Команда Netflix Cloud Data Engineering работает с различными приложениями для JVM, включая такие популярные хранилища данных, как Cassandra и Elasticsearch. Хотя большинство наших кластеров стабильно работают, обходясь выделенной им памятью, иногда «запрос смерти» или ошибка в самом хранилище данных приводят к перерасходу памяти, что может спровоцировать лишние циклы сборки мусора или даже привести к исчерпанию памяти в JVM.
https://habr.com/ru/company/timeweb/blog/700224/
Команда Netflix Cloud Data Engineering работает с различными приложениями для JVM, включая такие популярные хранилища данных, как Cassandra и Elasticsearch. Хотя большинство наших кластеров стабильно работают, обходясь выделенной им памятью, иногда «запрос смерти» или ошибка в самом хранилище данных приводят к перерасходу памяти, что может спровоцировать лишние циклы сборки мусора или даже привести к исчерпанию памяти в JVM.
https://habr.com/ru/company/timeweb/blog/700224/
Хабр
Сборка мусора в неисправных JVM, проактивный подход
Команда Netflix Cloud Data Engineering работает с различными приложениями для JVM, включая такие популярные хранилища данных, как Cassandra и Elasticsearch. Хотя большинство наших кластеров стабильно...
Создаем умные типы данных при помощи records и enums
Друзья, предложенную сегодня статью написал Брюс Эккель, автор книги "Философия Java".
Основываясь на функциональном подходе конструирования типов Java, используя "записи" (records) и перечисляемые типы (enums), Брюс научит вас получать объекты с корректными значениями. 🤔
Приятного чтения!
https://blogs.oracle.com/javamagazine/post/java-smarter-types-records-enums
Друзья, предложенную сегодня статью написал Брюс Эккель, автор книги "Философия Java".
Основываясь на функциональном подходе конструирования типов Java, используя "записи" (records) и перечисляемые типы (enums), Брюс научит вас получать объекты с корректными значениями. 🤔
Приятного чтения!
https://blogs.oracle.com/javamagazine/post/java-smarter-types-records-enums