Чашечка Java
8.55K subscribers
3.87K photos
13 videos
56 files
6.33K links
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Download Telegram
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/
Знакомство с простым веб-сервером 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/
👍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
Генерируем простой web интерфейс для просмотра таблиц PostgreSQL

В публикациях на хабре, чаще всего самое интересное в коментариях. Вот и в моем прошлом посте "Сгенерировать 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
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
Топ-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
👍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
👍2
Нагрузочное тестирование API без использования UI

Нагрузочное тестирование 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/
Компилирование «железного» бинарника Java-программы Google Closure Stylesheets с GraalVM

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
Azul Java учится сокращать время разминки

Read: https://www.infoworld.com/article/3706030/azul-java-learns-to-cut-warmup-times.html#tk.rss_java
Jackson ObjectMapper Streaming API без возни

Маппинг джейсонов или еще чего в модели чаще всего головная боль. Много мелочей, модели сделай, все подгони, аннотации расставь и прочее. Далее код примерно наколеночный, кому надо идею, поймет. Маппинг еще и памяти ест очень много, так как обычно 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

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


Читать: https://habr.com/ru/companies/otus/articles/758478/?utm_campaign=758478
Чашечка Java
Photo
Что такое константа Java и как ее объявить? static + ключевое слово final Пример учебника

Здравствуйте, друзья, мы снова здесь с новой статьей, которая посвящена Java Constant will give all basics of the topic
вы ищете материалы, которые помогут вам понять, что такое Java Constant, чтобы иметь глубокое представление о нем
вы ищете материалы для понимания Java Constant, чтобы иметь глубокие знания
вы ищете материалы для понимания Java Constant, чтобы иметь глубокие знания основ Java, тогда вы определенно узнаете из этой статьи
статья. Определение термина "константа"
гласит, что она относится к чему-то с фиксированным значением. Придавая переменной
придание переменной в Java фиксированного значения, которое она будет сохранять в течение всего времени
выполнения программы, создает константу. Любая переменная должна быть
преобразовать в константу, используя модификаторы "static" и "final", как описано ниже
как описано ниже:

Вопросы и задания для собеседования по Java

Read: http://www.java67.com/2023/09/what-is-java-constant-and-how-do-you.html
Ускоряем java-рефлексию в 2023

Хей, Хабр!

Твоя рефлексия всё ещё слишком медленная? Тогда мы идём к тебе!

Ищем способы ускорить рефлективные вызовы методов, сравниваем их, разбираемся, как создать свой быстрый field accessor...

Интересно? Добро пожаловать под кат!
Стать быстрее

Читать: https://habr.com/ru/articles/758664/?utm_campaign=758664