Чашечка Java
Photo
Разница между Spring и SpringBoot Framework в Java
Здравствуйте, ребята, если вы занимаетесь Java-разработкой, то наверняка сталкивались с фреймворками Spring и Spring Boot . Эти два Java-фреймворка захватили мир разработки программного обеспечения и стали основными инструментами для создания всевозможных приложений. Но что же такое Spring и Spring Boot и чем они отличаются друг от друга? Это один из распространенных вопросов, который задают многие Java-программисты, особенно те, кто только начинает заниматься разработкой программного обеспечения или является новичком в мире Java. В прошлом я уже рассказывал о Spring и Spring boot в нескольких статьях, курсах, книгах, проектах и вопросах для интервью, но в этой статье я собираюсь ответить, что именно такое Spring и Spring Boot и в чем их разница? Это также поможет вам решить, что лучше использовать - Spring Framework или Spring Boot для разработки Java-приложений.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2023/01/difference-between-spring-vs-springboot.html
Здравствуйте, ребята, если вы занимаетесь Java-разработкой, то наверняка сталкивались с фреймворками Spring и Spring Boot . Эти два Java-фреймворка захватили мир разработки программного обеспечения и стали основными инструментами для создания всевозможных приложений. Но что же такое Spring и Spring Boot и чем они отличаются друг от друга? Это один из распространенных вопросов, который задают многие Java-программисты, особенно те, кто только начинает заниматься разработкой программного обеспечения или является новичком в мире Java. В прошлом я уже рассказывал о Spring и Spring boot в нескольких статьях, курсах, книгах, проектах и вопросах для интервью, но в этой статье я собираюсь ответить, что именно такое Spring и Spring Boot и в чем их разница? Это также поможет вам решить, что лучше использовать - Spring Framework или Spring Boot для разработки Java-приложений.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2023/01/difference-between-spring-vs-springboot.html
👍2
История создания и обзор программы для простого построения DevOps отчётов
Здравствуйте, меня зовут Павел.
Я работал системным администратором с 2010 года в разных компаниях, в 2019 году решил сменить сферу деятельности на DevOps-инженера.
Проработав некоторое время DevOps-инженером, понял, что сотрудникам нужна программа, которая создавала бы в виде таблицы ёмкие отчёты о том, какие версии сборки программы установлены, на каких тестовых стендах и в каком состоянии эти сборки находятся на момент составления отчёта, с учётом того, что их можно было бы рассылать по email команде разработчиков.
Работая в компании, этот вариант отчёта я создал в виде джобы в Jenkins (Pipeline + Bash), отчёт создавался только для определённых тестовых стендов и для определённой программы.
Через некоторое время появилась мысль создать свою универсальную кроссплатформенную программу на Java для простого создания DevOps-отчётов.
Для профессии DevOps-инженера нужно было знать Java. Написание своей программы было бы неким стимулом для его изучения, поэтому я решил приступить к учёбе и по возможности создавать свою программу.
Почитав на просторах интернета статьи о лицензировании при использовании JDK и Open JDK, чтобы не было проблем с авторскими правами, я принял решение использовать Open JDK Amazon Corretto 11.
В качестве GUI интерфейса выбрал JavaFX. Программу назвал «DevOps Report Manager».
Далее, вооружившись книгой «Java Руководство для начинающих» и Интернетом, начал создавать первую часть программы.
Читать: https://habr.com/ru/articles/757704/?utm_campaign=757704
Здравствуйте, меня зовут Павел.
Я работал системным администратором с 2010 года в разных компаниях, в 2019 году решил сменить сферу деятельности на DevOps-инженера.
Проработав некоторое время DevOps-инженером, понял, что сотрудникам нужна программа, которая создавала бы в виде таблицы ёмкие отчёты о том, какие версии сборки программы установлены, на каких тестовых стендах и в каком состоянии эти сборки находятся на момент составления отчёта, с учётом того, что их можно было бы рассылать по email команде разработчиков.
Работая в компании, этот вариант отчёта я создал в виде джобы в Jenkins (Pipeline + Bash), отчёт создавался только для определённых тестовых стендов и для определённой программы.
Через некоторое время появилась мысль создать свою универсальную кроссплатформенную программу на Java для простого создания DevOps-отчётов.
Для профессии DevOps-инженера нужно было знать Java. Написание своей программы было бы неким стимулом для его изучения, поэтому я решил приступить к учёбе и по возможности создавать свою программу.
Почитав на просторах интернета статьи о лицензировании при использовании JDK и Open JDK, чтобы не было проблем с авторскими правами, я принял решение использовать Open JDK Amazon Corretto 11.
В качестве GUI интерфейса выбрал JavaFX. Программу назвал «DevOps Report Manager».
Далее, вооружившись книгой «Java Руководство для начинающих» и Интернетом, начал создавать первую часть программы.
Читать: https://habr.com/ru/articles/757704/?utm_campaign=757704
👍2
Spring Modulith 1.0 Gains Production-Readiness, IDE Support and Improved Testability
Spring Modulith 1.0 was promoted from its experimental status and became a fully supported Spring project. It structures Spring Boot 3 applications through modules and events. That module structure is now visible in IDEs like Spring Tool Suite and Visual Studio Code. The Event Publication Registry persists event completion faster. And Integration Tests Scenarios ease testing events.
By Karsten Silz
Read: https://www.infoq.com/news/2023/08/spring-modulith-1-0/
Spring Modulith 1.0 was promoted from its experimental status and became a fully supported Spring project. It structures Spring Boot 3 applications through modules and events. That module structure is now visible in IDEs like Spring Tool Suite and Visual Studio Code. The Event Publication Registry persists event completion faster. And Integration Tests Scenarios ease testing events.
By Karsten Silz
Read: https://www.infoq.com/news/2023/08/spring-modulith-1-0/
👍1
MicroStream Debuts Eclipse Store Java Persistence Framework at Eclipse Foundation
MicroStream, an open-source Java persistence framework, recently announced the first release of Eclipse Store under the auspices of the Eclipse Foundation. This first release contains two core components from MicroStream, its Serializer and StorageManager restructured as Eclipse Serializer and Eclipse Store, respectively.
By Sirisha Pratha
Read: https://www.infoq.com/news/2023/08/debut-of-eclipse-store/
MicroStream, an open-source Java persistence framework, recently announced the first release of Eclipse Store under the auspices of the Eclipse Foundation. This first release contains two core components from MicroStream, its Serializer and StorageManager restructured as Eclipse Serializer and Eclipse Store, respectively.
By Sirisha Pratha
Read: https://www.infoq.com/news/2023/08/debut-of-eclipse-store/
👍1
Spring AI Provides Integration with OpenAI and Azure OpenAI
The experimental Spring AI project was introduced during the SpringOne conference and allows the creation of AI applications by using common concepts of Spring. Currently the project integrates Azure OpenAI and OpenAI as AI backends. Use cases like content generation, code generation, semantic search and summarization are supported by the project.
By Johan Janssen
Read: https://www.infoq.com/news/2023/08/spring-ai/
The experimental Spring AI project was introduced during the SpringOne conference and allows the creation of AI applications by using common concepts of Spring. Currently the project integrates Azure OpenAI and OpenAI as AI backends. Use cases like content generation, code generation, semantic search and summarization are supported by the project.
By Johan Janssen
Read: https://www.infoq.com/news/2023/08/spring-ai/
Знакомство с простым веб-сервером Java
Read: https://www.infoworld.com/article/3705369/intro-to-javas-simple-web-server.html#tk.rss_java
Read: https://www.infoworld.com/article/3705369/intro-to-javas-simple-web-server.html#tk.rss_java
Article: Streamlining Code with Unnamed Patterns/Variables: A Comparative Study of Java, Kotlin, and Scala
Explore the use of the Unnamed Patterns/Variables in programming languages like Java, Kotlin, and Scala. Enhancing code readability, allowing omission of unnecessary components, and simplifying code are key features. Expect further innovative uses as languages evolve.
By A N M Bazlur Rahman
Read: https://www.infoq.com/articles/comparative-study-java-kotlin-scala/
Explore the use of the Unnamed Patterns/Variables in programming languages like Java, Kotlin, and Scala. Enhancing code readability, allowing omission of unnecessary components, and simplifying code are key features. Expect further innovative uses as languages evolve.
By A N M Bazlur Rahman
Read: https://www.infoq.com/articles/comparative-study-java-kotlin-scala/
👍1
Топ-5 бесплатных курсов по Google Cloud Platform для начинающих в 2023 году - Лучшее из многого
Здравствуйте, ребята, если вы тоже хотите изучить Google Cloud Platform в 2023 году и ищете бесплатные онлайн-курсы иматериалы по Google Cloud, чтобы начать свое путешествие по GCP, то вы пришли по адресу. Ранее я уже рассказывал о бесплатными сертификационными курсами Google Cloud Developer. Сегодня я расскажу о бесплатных онлайн-курсах от Udemy и Coursera, с помощью которых вы сможете изучить облачную платформу Google. Если вы не знаете, Google Cloud Platform - это масштабная облачная платформа Google, одна из трех крупнейших публичных облачных платформ наряду с AWS и Microsoft Azure.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2020/07/5-free-courses-to-learn-google-cloud-platform-and-concepts.html
Здравствуйте, ребята, если вы тоже хотите изучить Google Cloud Platform в 2023 году и ищете бесплатные онлайн-курсы иматериалы по Google Cloud, чтобы начать свое путешествие по GCP, то вы пришли по адресу. Ранее я уже рассказывал о бесплатными сертификационными курсами Google Cloud Developer. Сегодня я расскажу о бесплатных онлайн-курсах от Udemy и Coursera, с помощью которых вы сможете изучить облачную платформу Google. Если вы не знаете, Google Cloud Platform - это масштабная облачная платформа Google, одна из трех крупнейших публичных облачных платформ наряду с AWS и Microsoft Azure.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2020/07/5-free-courses-to-learn-google-cloud-platform-and-concepts.html
Генерируем простой web интерфейс для просмотра таблиц PostgreSQL
В публикациях на хабре, чаще всего самое интересное в коментариях. Вот и в моем прошлом посте "Сгенерировать web интерфейс из БД или объектной модели не стало проще даже 10 лет спустя" я собрал джекпот из SharePoint, Vaadin и нескольких библиотек либо устаревших, либо поддерживаемых "одним автором".
Что я пытался объяснить читателям, что на этапе проверки идей не нужна дополнительная сложность в виде серверной инфраструктуры только ради этой самой инфраструктуры и нового языка программирования/платформы. Именно поэтому мне не нужны сейчас Yii, Symfony и Laravel, не подойдет ADF. На любое обучение тратится драгоценное время и поэтому надо понимать зачем тратить время на что-то, что потом возможно навсегда придется забыть через неделю-другую игры с прототипом.
В своих эксперементах с помощью лапшекода на JavaScript я быстро разработал вполне функциональный интерфейс. А начиналось все с Java 21, хотя в итоге обошелся без нее!
Читать: https://habr.com/ru/articles/757990/?utm_campaign=757990
В публикациях на хабре, чаще всего самое интересное в коментариях. Вот и в моем прошлом посте "Сгенерировать web интерфейс из БД или объектной модели не стало проще даже 10 лет спустя" я собрал джекпот из SharePoint, Vaadin и нескольких библиотек либо устаревших, либо поддерживаемых "одним автором".
Что я пытался объяснить читателям, что на этапе проверки идей не нужна дополнительная сложность в виде серверной инфраструктуры только ради этой самой инфраструктуры и нового языка программирования/платформы. Именно поэтому мне не нужны сейчас Yii, Symfony и Laravel, не подойдет ADF. На любое обучение тратится драгоценное время и поэтому надо понимать зачем тратить время на что-то, что потом возможно навсегда придется забыть через неделю-другую игры с прототипом.
В своих эксперементах с помощью лапшекода на JavaScript я быстро разработал вполне функциональный интерфейс. А начиналось все с Java 21, хотя в итоге обошелся без нее!
Читать: https://habr.com/ru/articles/757990/?utm_campaign=757990
👍1
Топ-15 вопросов для собеседования по Spring Data JPA с ответами (2023)
Здравствуйте, ребята, если вы готовитесь к собеседованию с разработчиком Spring и ищете вопросы для собеседования по Spring Data JPA, то вы пришли по адресу. Ранее я уже рассказывал о часто задаваемых вопросах на собеседовании по Spring Boot, Spring Cloud, микросервисам и Spring MVC в целом, а в этой статье я расскажу о часто задаваемых вопросах на собеседовании по Spring Data JPA с ответами для Java-разработчиков. Spring - один из самых популярных и широко используемых фреймворков. Spring Data JPA является важной частью фреймворка, поскольку он упрощает работу с JPA или любой другой реализацией JPA, например Hibernate.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2021/01/spring-data-jpa-interview-questions-answers-java.html
Здравствуйте, ребята, если вы готовитесь к собеседованию с разработчиком Spring и ищете вопросы для собеседования по Spring Data JPA, то вы пришли по адресу. Ранее я уже рассказывал о часто задаваемых вопросах на собеседовании по Spring Boot, Spring Cloud, микросервисам и Spring MVC в целом, а в этой статье я расскажу о часто задаваемых вопросах на собеседовании по Spring Data JPA с ответами для Java-разработчиков. Spring - один из самых популярных и широко используемых фреймворков. Spring Data JPA является важной частью фреймворка, поскольку он упрощает работу с JPA или любой другой реализацией JPA, например Hibernate.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2021/01/spring-data-jpa-interview-questions-answers-java.html
❤1
13 Ответы на вопросы интервью Spring Boot Actuator для опытных людей с 5-летним стажем (2023)
Если вы использовали Spring Boot, то, возможно, знаете, что Spring Boot - это удобство, а Spring Boot actuator - одна из таких функций, обеспечивающая удобный способ взаимодействия с вашим приложением с помощью HTTP и JMX. Кроме того, это очень важно с точки зрения собеседования по Spring Boot. Хотя я включил несколько вопросов по Spring Boot Actuator в свою предыдущую статью о часто встречающихся вопросах на собеседовании по Spring boot, многие из вас просили дать больше вопросов для более глубокого изучения Spring Boot Actuator, поэтому я решил написать отдельную статью. В этой статье мы рассмотрим некоторые популярные вопросы для собеседования по Spring boot Actuator и попутно узнаем больше об этой полезной функции Spring boot.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2021/02/spring-boot-actuator-interview-questions-answers-java.html
Если вы использовали Spring Boot, то, возможно, знаете, что Spring Boot - это удобство, а Spring Boot actuator - одна из таких функций, обеспечивающая удобный способ взаимодействия с вашим приложением с помощью HTTP и JMX. Кроме того, это очень важно с точки зрения собеседования по Spring Boot. Хотя я включил несколько вопросов по Spring Boot Actuator в свою предыдущую статью о часто встречающихся вопросах на собеседовании по Spring boot, многие из вас просили дать больше вопросов для более глубокого изучения Spring Boot Actuator, поэтому я решил написать отдельную статью. В этой статье мы рассмотрим некоторые популярные вопросы для собеседования по Spring boot Actuator и попутно узнаем больше об этой полезной функции Spring boot.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2021/02/spring-boot-actuator-interview-questions-answers-java.html
Топ-5 бесплатных курсов по Core Spring, Spring MVC и Spring Boot для начинающих в 2023 году - Best of Lot
В последнее время я часто рассказываю о таких ресурсах, как книги и курсы, и когда я опубликовал свой список 5 лучших курсов по изучению Spring и Hibernateмногие мои читатели спрашивали об аналогичном списке бесплатных курсов по изучению Spring Framework, таких как Core Spring, Spring MVC, Spring Security и Spring Boot. Эта просьба постоянно возвращалась в мою голову, но я никак не мог найти время, чтобы составить список, которым можно поделиться с вами, и вот сегодня этот день настал. В этом списке я собрал несколько лучших бесплатных онлайн-курсов, позволяющих изучить Spring Framework с нуля, в режиме онлайн и в удобное для вас время.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2017/11/top-5-free-core-spring-mvc-courses-learn-online.html
В последнее время я часто рассказываю о таких ресурсах, как книги и курсы, и когда я опубликовал свой список 5 лучших курсов по изучению Spring и Hibernateмногие мои читатели спрашивали об аналогичном списке бесплатных курсов по изучению Spring Framework, таких как Core Spring, Spring MVC, Spring Security и Spring Boot. Эта просьба постоянно возвращалась в мою голову, но я никак не мог найти время, чтобы составить список, которым можно поделиться с вами, и вот сегодня этот день настал. В этом списке я собрал несколько лучших бесплатных онлайн-курсов, позволяющих изучить Spring Framework с нуля, в режиме онлайн и в удобное для вас время.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2017/11/top-5-free-core-spring-mvc-courses-learn-online.html
👍1🤔1
Удобная подсветка покрытия кода тестами в Merge Request GitLab
Основным средством для командной работы с репозиторием компании, в которой я работаю, является Gitlab. На первый взгляд, он хорош: и бесплатной версии хватает сполна, и CI/CD - пайплайн имеется, и хранить артефакты тоже можно (долой Nexus). Однако, и у GitLab есть свои минусы.
Так, например, разработчики до сих пор не смогли реализовать визуализацию покрытия тестов. Да, она у них есть, но для её реализации нужно сгенерировать и загрузить в GitLab отчет о покрытии в устаревшем формате Cobertura, а не в актуальном Jacoco. Основная же проблема в том, что Cobertura plugin последний раз обновлялся в далеком 2015 году.
Читать: https://habr.com/ru/articles/758066/?utm_campaign=758066
Основным средством для командной работы с репозиторием компании, в которой я работаю, является Gitlab. На первый взгляд, он хорош: и бесплатной версии хватает сполна, и CI/CD - пайплайн имеется, и хранить артефакты тоже можно (долой Nexus). Однако, и у GitLab есть свои минусы.
Так, например, разработчики до сих пор не смогли реализовать визуализацию покрытия тестов. Да, она у них есть, но для её реализации нужно сгенерировать и загрузить в GitLab отчет о покрытии в устаревшем формате Cobertura, а не в актуальном Jacoco. Основная же проблема в том, что Cobertura plugin последний раз обновлялся в далеком 2015 году.
Читать: https://habr.com/ru/articles/758066/?utm_campaign=758066
👍2
Нагрузочное тестирование API без использования UI
Нагрузочное тестирование API без использования UI
В этой статье поговорим о Нагрузочном тестировании при помощи JMeter-Java-Dsl и реализуем наш первый нагрузочный тест для API с генерацией динамических значений.
Читать: https://habr.com/ru/articles/758194/?utm_campaign=758194
Нагрузочное тестирование API без использования UI
В этой статье поговорим о Нагрузочном тестировании при помощи JMeter-Java-Dsl и реализуем наш первый нагрузочный тест для API с генерацией динамических значений.
Читать: https://habr.com/ru/articles/758194/?utm_campaign=758194
👍3
JDK 21 and JDK 22: What We Know So Far
JDK 21, the next Long-Term Support (LTS) release since JDK 17, has reached its initial release candidate phase with a final set of 15 new features, in the form of JEPs, that can be separated into four categories: Core Java Library, Java Language Specification, HotSpot and Security Library. We examine JDK 21 and predict what features may be targeted for JDK 22.
By Michael Redlich
Read: https://www.infoq.com/news/2023/09/java-21-so-far/
JDK 21, the next Long-Term Support (LTS) release since JDK 17, has reached its initial release candidate phase with a final set of 15 new features, in the form of JEPs, that can be separated into four categories: Core Java Library, Java Language Specification, HotSpot and Security Library. We examine JDK 21 and predict what features may be targeted for JDK 22.
By Michael Redlich
Read: https://www.infoq.com/news/2023/09/java-21-so-far/
Компилирование «железного» бинарника Java-программы Google Closure Stylesheets с GraalVM
Google Closure Stylesheets -- это компилятор для CSS, написанный Гугл в рамках набора инструментов Closure для веб-разработки, который в свое время обладал внушительными функциями такими как экспансия браузерных префиксов, переменными и др. Прошло уже более 10 лет с начала этого проекта, и в прошлом году его архивировали. Я же продолжил вести свой форк, и сегодня собрал его как нативный binary с помощью Oracle GraalVM. Под катом рассказ о том, какие моменты пришлось проработать, а так же небольшие бенчмарки.
Читать: https://habr.com/ru/articles/758300/?utm_campaign=758300
Google Closure Stylesheets -- это компилятор для CSS, написанный Гугл в рамках набора инструментов Closure для веб-разработки, который в свое время обладал внушительными функциями такими как экспансия браузерных префиксов, переменными и др. Прошло уже более 10 лет с начала этого проекта, и в прошлом году его архивировали. Я же продолжил вести свой форк, и сегодня собрал его как нативный binary с помощью Oracle GraalVM. Под катом рассказ о том, какие моменты пришлось проработать, а так же небольшие бенчмарки.
Читать: https://habr.com/ru/articles/758300/?utm_campaign=758300
👍1
Релиз Jmix 2.0 — новой версии платформы для быстрой разработки бизнес-приложений на Java
Выпуск Jmix 2.0 — важная веха в развитии платформы. В первую очередь мы провели глобальное обновление технологического стека, что гарантирует актуальность в долгосрочной перспективе.
Читать: https://habr.com/ru/companies/haulmont/articles/757932/?utm_campaign=757932
Выпуск Jmix 2.0 — важная веха в развитии платформы. В первую очередь мы провели глобальное обновление технологического стека, что гарантирует актуальность в долгосрочной перспективе.
Читать: https://habr.com/ru/companies/haulmont/articles/757932/?utm_campaign=757932
Azul Java учится сокращать время разминки
Read: https://www.infoworld.com/article/3706030/azul-java-learns-to-cut-warmup-times.html#tk.rss_java
Read: https://www.infoworld.com/article/3706030/azul-java-learns-to-cut-warmup-times.html#tk.rss_java
Jackson ObjectMapper Streaming API без возни
Маппинг джейсонов или еще чего в модели чаще всего головная боль. Много мелочей, модели сделай, все подгони, аннотации расставь и прочее. Далее код примерно наколеночный, кому надо идею, поймет. Маппинг еще и памяти ест очень много, так как обычно ObjectMapper применяют примерно так:
В итоге если модель большая маппер ее всю в памяти построит за раз, прочитав опять же весь json из стрима. Хуже когда даже json сначала в строку читают конечно. Потом приходит очередной ругатель и заявляет, что это java виновата. Что бы этого не делать, придумали ObjectMapper Streaming API. Что то вроде такого:
Но фактически руками парсить json это тоже головняк. Есть хак, который позволяет и модели сразу получать и стриминг использовать. Может кому пригодится. Предположим у нас есть json, который содержит в себе большой массив объектов:
Делаем две модели. Первая это общий объект:
Вторая это вложенный объект:
Далее делаем десериализатор, который десериализует модель класса NestedModel. При этом данный десериализатор должен в конструкторе принимать обработчик моделей NestedModel и возвращать null вместо результата. То есть он обработчиком модель обработает и вернет пустоту. В итоге ObjectMapper вернет Model с одним null элементом, который нам и не нужен, так как в процессе десериализации всех NestedModel мы их уже и так все обработали. В памяти при этом в момент времени хранится всего одна NestedModel в момент времени и писать ручного кода не нужно вовсе. Десериализатор:
Читать: https://habr.com/ru/articles/758432/?utm_campaign=758432
Маппинг джейсонов или еще чего в модели чаще всего головная боль. Много мелочей, модели сделай, все подгони, аннотации расставь и прочее. Далее код примерно наколеночный, кому надо идею, поймет. Маппинг еще и памяти ест очень много, так как обычно ObjectMapper применяют примерно так:
mapper.readValue(inputStream,Model.class)В итоге если модель большая маппер ее всю в памяти построит за раз, прочитав опять же весь json из стрима. Хуже когда даже json сначала в строку читают конечно. Потом приходит очередной ругатель и заявляет, что это java виновата. Что бы этого не делать, придумали ObjectMapper Streaming API. Что то вроде такого:
while (jParser.nextToken() != JsonToken.END_OBJECT) {
String fieldname = jParser.getCurrentName();
if ("name".equals(fieldname)) {
jParser.nextToken();
parsedName = jParser.getText();
}Но фактически руками парсить json это тоже головняк. Есть хак, который позволяет и модели сразу получать и стриминг использовать. Может кому пригодится. Предположим у нас есть json, который содержит в себе большой массив объектов:
{result:[{"name":"test"}]}Делаем две модели. Первая это общий объект:
public class Model {
private Set<nestedmodel result;
}Вторая это вложенный объект:
public class NestedModel {
private String name;
}Далее делаем десериализатор, который десериализует модель класса NestedModel. При этом данный десериализатор должен в конструкторе принимать обработчик моделей NestedModel и возвращать null вместо результата. То есть он обработчиком модель обработает и вернет пустоту. В итоге ObjectMapper вернет Model с одним null элементом, который нам и не нужен, так как в процессе десериализации всех NestedModel мы их уже и так все обработали. В памяти при этом в момент времени хранится всего одна NestedModel в момент времени и писать ручного кода не нужно вовсе. Десериализатор:
public class NestedModelDeserializer extends StdDeserializer<nestedmodel {
private final Consumer<nestedmodel nestedModelConsumer;
private final ObjectMapper innerMapper;
protected NestedModelDeserializer(Class<nestedmodel vc, Consumer<nestedmodel nestedModelConsumer) {
super(vc);
this.nestedModelConsumer = nestedModelConsumer;
this.innerMapper = new ObjectMapper();
}
@Override public NestedModel deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JacksonException {
nestedModelConsumer.accept(innerMapper.readValue(p,NestedModel.class));
return null;
}
} Читать: https://habr.com/ru/articles/758432/?utm_campaign=758432
👍3
Разница между аннотациями @PreAuthorized и @RolesAllowed в Java (с примером)
Здравствуйте, в Java-программировании и разработке backend-приложений безопасность играет ключевую роль в защите приложений от несанкционированного доступа и вредоносных действий. Для обеспечения надлежащего контроля над правами доступа Java-разработчики часто используют аннотации, такие как @PreAuthorized и @RolesAllowed из фреймворка Spring Security. Ранее я рассказывал о том, как настроить Spring Security, и рассказывал о HTTP Basic Authentication, а в этой статье мы рассмотрим функциональность обеих аннотаций, их различия, а также используем примеры из реальной жизни и программирования, чтобы проиллюстрировать их значение.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2023/09/difference-preauthorized-and.html
Здравствуйте, в Java-программировании и разработке backend-приложений безопасность играет ключевую роль в защите приложений от несанкционированного доступа и вредоносных действий. Для обеспечения надлежащего контроля над правами доступа Java-разработчики часто используют аннотации, такие как @PreAuthorized и @RolesAllowed из фреймворка Spring Security. Ранее я рассказывал о том, как настроить Spring Security, и рассказывал о HTTP Basic Authentication, а в этой статье мы рассмотрим функциональность обеих аннотаций, их различия, а также используем примеры из реальной жизни и программирования, чтобы проиллюстрировать их значение.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2023/09/difference-preauthorized-and.html