Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Learn Java Basics
- Hello Spring Boot | Learn to code,java tutorial,rest API
- Spring Boot Wordle REST Service | Learn to code
- Spring MVC, Web UI with Thymeleaf | Learn to code
- Refactoring, IoC, DRY, Layered Arch & Spring Stereotypes
- Wordle Web App with Thymeleaf & Spring MVC | Spring Boot
- Understanding Spring Session Scope | Spring Boot
- Spring Boot JavaScript Introduction with Thymeleaf
- Spring Boot Single Page Application (SPA) | Learn Java
- Databases and Unit Tests | Learn Java, Java course
- User Id Cookie and Database | Java Spring Tutorial
источник
👉@BookJava
- Hello Spring Boot | Learn to code,java tutorial,rest API
- Spring Boot Wordle REST Service | Learn to code
- Spring MVC, Web UI with Thymeleaf | Learn to code
- Refactoring, IoC, DRY, Layered Arch & Spring Stereotypes
- Wordle Web App with Thymeleaf & Spring MVC | Spring Boot
- Understanding Spring Session Scope | Spring Boot
- Spring Boot JavaScript Introduction with Thymeleaf
- Spring Boot Single Page Application (SPA) | Learn Java
- Databases and Unit Tests | Learn Java, Java course
- User Id Cookie and Database | Java Spring Tutorial
источник
👉@BookJava
👍4
Разница между загрузкой и инициализацией классов в Java на любопытном примере
Привет, сегодняшняя статья будет о некоторых тонкостях загрузки и инициализации классов и немного о производительности (совсем чуть-чуть и в самом конце).
Поводом для написания статьи стал вопрос на StackOverflow. Откройте, но не торопитесь читать ответ ;)
https://habr.com/ru/articles/740156/
👉@BookJava
Привет, сегодняшняя статья будет о некоторых тонкостях загрузки и инициализации классов и немного о производительности (совсем чуть-чуть и в самом конце).
Поводом для написания статьи стал вопрос на StackOverflow. Откройте, но не торопитесь читать ответ ;)
https://habr.com/ru/articles/740156/
👉@BookJava
👍2
Media is too big
VIEW IN TELEGRAM
Java. Многопоточность. Как устроить Deadlock
В данном видео рассказывается о том, что такое Deadlock, и как намеренно создать взаимную блокировку потоков на языке программирования Java.
источник
👉@BookJava
В данном видео рассказывается о том, что такое Deadlock, и как намеренно создать взаимную блокировку потоков на языке программирования Java.
источник
👉@BookJava
👍4
Checkstyle
Это средство разработки, помогающее программистам писать Java-код, соответствующий стандартам программирования. По умолчанию он поддерживает Google Java Style Guide и Sun Code Conventions, но является очень настраиваемым. Он может быть вызван с помощью задачи ANT и программы командной строки
https://github.com/checkstyle/checkstyle
👉@BookJava
Это средство разработки, помогающее программистам писать Java-код, соответствующий стандартам программирования. По умолчанию он поддерживает Google Java Style Guide и Sun Code Conventions, но является очень настраиваемым. Он может быть вызван с помощью задачи ANT и программы командной строки
https://github.com/checkstyle/checkstyle
👉@BookJava
👍4
Media is too big
VIEW IN TELEGRAM
SOLID -- Это Просто! Принципы ООП (Объектно Ориентированного Программирования)
https://habr.com/ru/companies/productivity_inside/articles/505430/
источник
👉@BookJava
https://habr.com/ru/companies/productivity_inside/articles/505430/
источник
👉@BookJava
👍5
150 вопросов и ответов на собеседовании по Java
В следующих разделах мы рассмотрим вопросы Java-собеседования, касающиеся объектно-ориентированного программирования и его особенностей, общие вопросы по Java и ее функциональности, коллекций в Java, сборщиков мусора, обработки исключений, Java-апплетов, Swing, JDBC, Remote Method Invocation (RMI), сервлетов и JSP.
https://www.javacodegeeks.com/java-interview-questions.html
👉@BookJava
В следующих разделах мы рассмотрим вопросы Java-собеседования, касающиеся объектно-ориентированного программирования и его особенностей, общие вопросы по Java и ее функциональности, коллекций в Java, сборщиков мусора, обработки исключений, Java-апплетов, Swing, JDBC, Remote Method Invocation (RMI), сервлетов и JSP.
https://www.javacodegeeks.com/java-interview-questions.html
👉@BookJava
👍5🔥1
Java Collections Framework. Вопросы для собеседования
https://github.com/enhorse/java-interview/blob/master/jcf.md
👉@BookJava
https://github.com/enhorse/java-interview/blob/master/jcf.md
👉@BookJava
👍4🤮1
Что такое JDBC-драйвер? Какие бывают типы?
JDBC – Java DataBase Connectivity – соединение с базами данных на Java. Это стандарт взаимодействия с БД. Его интерфейс поставляется в стандартной JDK в виде пакета java.sql. Какой бы библиотекой для работы с базой данных вы ни пользовались, в ее основе почти всегда лежит низкоуровневый JDBC.
JDBC-драйвер – реализация JDBC для определенной базы данных. В приложении может быть зарегистрировано несколько разных драйверов. При соединении к базе, нужный выбирается исходя из URL соединения. Драйверы делятся на 4 типа:
Тип 1 – JDBC-ODBC мост. Делегирует работу с базой установленному в системе ODBC-драйверу. Платформозависимый. Не поддерживается с Java 8.
Тип 2 – Native API. Делегирует работу с базой библиотеке, установленной в системе. Платформозависимый. Библиотеки в отличие от ODBC специфичны для конкретной базы, поэтому такой драйвер обычно работает быстрее.
Тип 3 – драйвер сетевого протокола. Работает с промежуточным слоем (JavaEE сервером приложений), который транслирует запросы в сетевой протокол, с которым работает конкретная БД. Такой драйвер полностью реализован на Java.
Тип 4 – драйвер протокола БД/тонкий драйвер. Полная реализация протокола взаимодействия с базой данных. Отличается от типа 3 тем, что здесь логика протокола находится не на внешнем промежуточном слое, а прямо в самом драйвере.
👉@BookJava
JDBC – Java DataBase Connectivity – соединение с базами данных на Java. Это стандарт взаимодействия с БД. Его интерфейс поставляется в стандартной JDK в виде пакета java.sql. Какой бы библиотекой для работы с базой данных вы ни пользовались, в ее основе почти всегда лежит низкоуровневый JDBC.
JDBC-драйвер – реализация JDBC для определенной базы данных. В приложении может быть зарегистрировано несколько разных драйверов. При соединении к базе, нужный выбирается исходя из URL соединения. Драйверы делятся на 4 типа:
Тип 1 – JDBC-ODBC мост. Делегирует работу с базой установленному в системе ODBC-драйверу. Платформозависимый. Не поддерживается с Java 8.
Тип 2 – Native API. Делегирует работу с базой библиотеке, установленной в системе. Платформозависимый. Библиотеки в отличие от ODBC специфичны для конкретной базы, поэтому такой драйвер обычно работает быстрее.
Тип 3 – драйвер сетевого протокола. Работает с промежуточным слоем (JavaEE сервером приложений), который транслирует запросы в сетевой протокол, с которым работает конкретная БД. Такой драйвер полностью реализован на Java.
Тип 4 – драйвер протокола БД/тонкий драйвер. Полная реализация протокола взаимодействия с базой данных. Отличается от типа 3 тем, что здесь логика протокола находится не на внешнем промежуточном слое, а прямо в самом драйвере.
👉@BookJava
❤6👍4
Как работает инъекция прототипа в синглтон?
Допустим ситуацию, когда в singleton-компонент внедряется зависимость со скоупом prototype – когда будет создан её объект?
Если просто добавить к определению бина аннотацию
Примитивный способ получать новый объект при каждом обращении – отказаться от
Воспользоваться автоматическим внедрением зависимостей можно через внедрение метода (паттерн «Команда»). Автовайрится не сам объект, а производящий его метод.
Более красивый декларативный способ – правильно настроить определение бина. В аннотации
Лучший способ разобраться со скоупами – прочитать официальный гайд с иллюстрациями, и поэкспериментировать на практике. Для начала попробуйте пример с изображения ниже.
👉@BookJava
Допустим ситуацию, когда в singleton-компонент внедряется зависимость со скоупом prototype – когда будет создан её объект?
Если просто добавить к определению бина аннотацию
@Scope(SCOPE_PROTOTYPE
), и использовать этот бин в синглтоне через аннотацию @Autowired
– будет создан только один объект. Потому что синглтон создается только однажды, и обращение к прототипу случится тоже однажды при его создании (при внедрении зависимости).Примитивный способ получать новый объект при каждом обращении – отказаться от
@Autowired
, и доставать его из контекста вручную. Для этого нужно вызывать context.getBean(MyPrototype.class).Воспользоваться автоматическим внедрением зависимостей можно через внедрение метода (паттерн «Команда»). Автовайрится не сам объект, а производящий его метод.
Более красивый декларативный способ – правильно настроить определение бина. В аннотации
@Scope
кроме самого scopeName
доступен второй параметр – proxyMode
. По умолчанию его значение NO – прокси не создается. Но если указать INTERFACES
или TARGET_CLASS
, то под @Autowired
будет внедряться не сам объект, а сгенерированный фреймворком прокси. И когда проксируемый бин имеет скоуп prototype, то объект внутри прокси будет пересоздаваться при каждом обращении.Лучший способ разобраться со скоупами – прочитать официальный гайд с иллюстрациями, и поэкспериментировать на практике. Для начала попробуйте пример с изображения ниже.
👉@BookJava
👍6❤1
Под каким типом хранить период времени?
В стандартной библиотеке современных версий Java для этих целей есть два класса:
Duration – длительность времени. Количество наносекунд, секунд, минут, часов, и тоже дней. Здесь один день – ровно 24 часа.
Оба класса реализуют общий интерфейс
Экземпляры обоих классов могут быть созданы из значений отдельных компонентов, из двух моментов времени методом between, или из строки. Строковое представление Duration: "
До Java 8 основным способом хранения периода были числовые примитивы. В этом подходе есть много недостатков, среди которых в первую очередь неограниченность значений и ненаглядность. Чтобы в Java 8+ получить период числом, используется метод
👉@BookJava
В стандартной библиотеке современных версий Java для этих целей есть два класса:
Period
– календарный период. Количество дней, месяцев и лет. Одним днем здесь считается день в терминах ZonedDateTime
.Duration – длительность времени. Количество наносекунд, секунд, минут, часов, и тоже дней. Здесь один день – ровно 24 часа.
Оба класса реализуют общий интерфейс
TemporalAmount
– период времени вообще. Оба иммутабельны, и как следствие, потокобезопасны. Любая модифицирующая операция вроде plusX()
возвращает новый экземпляр с измененным значением.Экземпляры обоих классов могут быть созданы из значений отдельных компонентов, из двух моментов времени методом between, или из строки. Строковое представление Duration: "
P2DT3H4M
", Period: "P1Y2M3D
".До Java 8 основным способом хранения периода были числовые примитивы. В этом подходе есть много недостатков, среди которых в первую очередь неограниченность значений и ненаглядность. Чтобы в Java 8+ получить период числом, используется метод
between()
нужного элемента енама ChronoUnit
.👉@BookJava
👍6❤1
Опишите синтаксис javadoc-комментария
Javadoc-комментарии к классам и их членам заключаются между /** и */. С точки зрения синтаксиса Java это обычные многострочные комментарии, но вторая * позволяет различным инструментам воспринимать их как документацию API. Изначально для этого использовалась стандартная утилита javadoc, которая генерировала HTML-документацию, сейчас джавадок активно используется прямо в IDE.
До Java 1.4 каждая строка комментария обязана была начинаться со *. Сейчас это требование необязательное, но следовать ему всё ещё принято.
Первое предложение комментария принимается в качестве заголовка описания элемента. В HTML именно оно попадает на страницу индекса. Предложение заканчивается точкой с последующим разделительным символом.
В javadoc разрешено использовать HTML-теги. Фрагменты кода рекомендуется обрамлять тегом <code>, для списка с буллетами применяется <ul>, параграфы отделяются <p>. В документации библиотеки Reactor активно используются <img> с диаграммами.
Комментарий состоит из двух частей: описание и блок тегов. Первый блок содержит всю информацию в свободной форме. Во втором находятся теги. Каждый тег начинается с новой строки, через пробел за ним следует значение.
Один тег можно использовать в блоке описания –
Среди всех тегов обязательными считаются только
•
•
•
•
•
Теги
👉@BookJava
Javadoc-комментарии к классам и их членам заключаются между /** и */. С точки зрения синтаксиса Java это обычные многострочные комментарии, но вторая * позволяет различным инструментам воспринимать их как документацию API. Изначально для этого использовалась стандартная утилита javadoc, которая генерировала HTML-документацию, сейчас джавадок активно используется прямо в IDE.
До Java 1.4 каждая строка комментария обязана была начинаться со *. Сейчас это требование необязательное, но следовать ему всё ещё принято.
Первое предложение комментария принимается в качестве заголовка описания элемента. В HTML именно оно попадает на страницу индекса. Предложение заканчивается точкой с последующим разделительным символом.
В javadoc разрешено использовать HTML-теги. Фрагменты кода рекомендуется обрамлять тегом <code>, для списка с буллетами применяется <ul>, параграфы отделяются <p>. В документации библиотеки Reactor активно используются <img> с диаграммами.
Комментарий состоит из двух частей: описание и блок тегов. Первый блок содержит всю информацию в свободной форме. Во втором находятся теги. Каждый тег начинается с новой строки, через пробел за ним следует значение.
Один тег можно использовать в блоке описания –
@link
. Он не обязан быть на новой строке, обрамляется фигурными скобками, и при рендеринге превращается в <a> со ссылкой на другую страницу документации.Среди всех тегов обязательными считаются только
@param
для каждого параметра метода, и @return
для не-void методов. Они применимы только для методов. А теги @author
и @version
наоборот, используются только в документации классов. Остальные блочные теги можно использовать везде:•
@deprecated
•
@exception (то же что @throws)
•
@see
•
@since
•
@serial
(то же что @serialField
или @serialData
)Теги
@author
, @param
, @throws
и @see
могут входить в один комментарий в нескольких экземплярах.👉@BookJava
👍3
Прожарка java.lang.String
Давайте абьюзить баг в java.lang.String, который позволит делать очень странные строки. Мы сделаем "Hello World", который не начинается с "Hello" и покажем, что не все пустые строки равны между собой. Научимся прожаривать строки в чужих классах.
Rus https://habr.com/ru/companies/bar/articles/747528/
Eng https://wouter.coekaerts.be/2023/breaking-string
👉@BookJava
Давайте абьюзить баг в java.lang.String, который позволит делать очень странные строки. Мы сделаем "Hello World", который не начинается с "Hello" и покажем, что не все пустые строки равны между собой. Научимся прожаривать строки в чужих классах.
Rus https://habr.com/ru/companies/bar/articles/747528/
Eng https://wouter.coekaerts.be/2023/breaking-string
👉@BookJava
👍3
Когда стоит выбрать char[] вместо String?
Первая, очевидная причина – оптимизация. Если вам заранее известен размер строки, и он фиксирован, может быть полезно выбрать массив. Если программа работает с неизменяемыми подстроками, удобно представить их в виде offset-ов общего массива.
Следует помнить, что оптимизировать нужно осознанно и своевременно. JVM тоже прикладывает усилия по оптимизации строк, которые могут оказаться эффективнее ваших.
Вторая, менее очевидная причина – безопасность. Строки в Java иммутабельны. Это значит, что когда вы сохраняете пароль в объекте типа String, физически уничтожить его из памяти может только сборщик мусора.
Существует способ алгоритмической атаки на систему, когда хакер своими действиями вызывает переполнение памяти, и конфиденциальная информация попадает в heap dump.
Если пароль хранится в массиве, программист может самостоятельно «занулить» значение после использования.
👉@BookJava
Первая, очевидная причина – оптимизация. Если вам заранее известен размер строки, и он фиксирован, может быть полезно выбрать массив. Если программа работает с неизменяемыми подстроками, удобно представить их в виде offset-ов общего массива.
Следует помнить, что оптимизировать нужно осознанно и своевременно. JVM тоже прикладывает усилия по оптимизации строк, которые могут оказаться эффективнее ваших.
Вторая, менее очевидная причина – безопасность. Строки в Java иммутабельны. Это значит, что когда вы сохраняете пароль в объекте типа String, физически уничтожить его из памяти может только сборщик мусора.
Существует способ алгоритмической атаки на систему, когда хакер своими действиями вызывает переполнение памяти, и конфиденциальная информация попадает в heap dump.
Если пароль хранится в массиве, программист может самостоятельно «занулить» значение после использования.
👉@BookJava
👍4
Могут ли потоки заменить циклы в Java?
Выход Java 8 стал знаменательным событием в истории Java. Появились потоки и Lambdas, которые сейчас широко используются. Если вы не знаете о потоках или никогда о них не слышали, это совершенно нормально. В большинстве случаев циклы удовлетворят ваши потребности, и у вас не будет проблем без потоков.
Тогда зачем нам нужны потоки? Могут ли они заменить циклы или иметь преимущества перед ними? В этой статье мы рассмотрим код, сравним производительность и посмотрим, насколько хороши потоки в качестве замены циклов.
https://betterprogramming.pub/can-streams-replace-loops-in-java-f56d4461743a
👉@BookJava
Выход Java 8 стал знаменательным событием в истории Java. Появились потоки и Lambdas, которые сейчас широко используются. Если вы не знаете о потоках или никогда о них не слышали, это совершенно нормально. В большинстве случаев циклы удовлетворят ваши потребности, и у вас не будет проблем без потоков.
Тогда зачем нам нужны потоки? Могут ли они заменить циклы или иметь преимущества перед ними? В этой статье мы рассмотрим код, сравним производительность и посмотрим, насколько хороши потоки в качестве замены циклов.
https://betterprogramming.pub/can-streams-replace-loops-in-java-f56d4461743a
👉@BookJava
👍5🤬3
Лишает ли var строгой типизации?
Ключевое слово
Отсюда несколько выводов. Во-первых, нельзя использовать var в полях класса, параметрах метода, и где-либо еще кроме локальных переменных. Во-вторых, обязана быть инициализация с понятным типом – варианты
И главное следствие – к концу компиляции у таких переменных фиксированный и известный тип, который не может быть изменен позднее. А это и есть определение строгой типизации.
Ответ: нет, выводимый тип – строгий. Более того, типизация остается статической.
Главное упущение – в инициализации разрешено использовать diamond operator. В обычных обстоятельствах в нём выведется правильный generic-тип, но в случае
👉@BookJava
Ключевое слово
var
появилось в Java 10. Указание var
вместо типа локальной переменной применяет к ней механизм вывода типов (type inference). Тип будет вычислен на этапе компиляции из того, чем переменная инициализируется.Отсюда несколько выводов. Во-первых, нельзя использовать var в полях класса, параметрах метода, и где-либо еще кроме локальных переменных. Во-вторых, обязана быть инициализация с понятным типом – варианты
var x
; или var x = null
; не скомпилируются.И главное следствие – к концу компиляции у таких переменных фиксированный и известный тип, который не может быть изменен позднее. А это и есть определение строгой типизации.
Ответ: нет, выводимый тип – строгий. Более того, типизация остается статической.
Главное упущение – в инициализации разрешено использовать diamond operator. В обычных обстоятельствах в нём выведется правильный generic-тип, но в случае
var
информации недостаточно, и типом-параметром будет Object
.👉@BookJava
👍4
Разбираемся в «базовых» алгоритмах для проекта
Меня зовут Александр Певненко, я Java developer в СберТехе. Вместе с командой развиваю Platform V DataSpace — BaaS-продукт, обеспечивающий базовые сервисы для работы с данными.
В этой статье я собрал примерный список алгоритмов, которые использую в работе с высоконагруженным проектом с большой кодовой базой. Материал будет интересен всем, кто на практике решает задачи оптимизации и вообще задумывается, обязательно ли разработчику глубоко погружаться в математику.
Если скорость и производительность критичны для системы, то оптимизация кода перестает быть пустой тратой времени. А использование сторонних библиотек без понимания их устройства становится риском, так как может обернуться падением производительности.
Поэтому здесь я приведу несколько «базовых» алгоритмов, знание которых помогает мне работать с прицелом на эффективность кода, и дополню примерами на Python и Java.
https://habr.com/ru/companies/sberbank/articles/756894/
👉@BookJava
Меня зовут Александр Певненко, я Java developer в СберТехе. Вместе с командой развиваю Platform V DataSpace — BaaS-продукт, обеспечивающий базовые сервисы для работы с данными.
В этой статье я собрал примерный список алгоритмов, которые использую в работе с высоконагруженным проектом с большой кодовой базой. Материал будет интересен всем, кто на практике решает задачи оптимизации и вообще задумывается, обязательно ли разработчику глубоко погружаться в математику.
Если скорость и производительность критичны для системы, то оптимизация кода перестает быть пустой тратой времени. А использование сторонних библиотек без понимания их устройства становится риском, так как может обернуться падением производительности.
Поэтому здесь я приведу несколько «базовых» алгоритмов, знание которых помогает мне работать с прицелом на эффективность кода, и дополню примерами на Python и Java.
https://habr.com/ru/companies/sberbank/articles/756894/
👉@BookJava
👍6
Сгенерируйте случайное число в интервале
Когда мы сталкиваемся со случайными числами, то всегда должны помнить о вопросе их распределения. Не будем здесь углубляться в теорию мат. статистики, а рассмотрим только практические следствия.
Самые стандартные классы-генераторы случайных чисел создают равномерно распределенные значения. Любое число возникает с одинаковой вероятностью – это ожидаемое поведение для большинства задач. Например, метод
Однако, программист легко может "испортить" равномерность значений последующими операциями. Возьмем вместо предыдущего примера
Это та причина, по которой лучше не пользоваться общепринятым «школьным» арифметическим ограничением с помощью оператора
Если задача подразумевает более плотную работу с распределениями, стоит воспользоваться специализированной библиотекой вроде Apache Commons Math.
👉@BookJava
Когда мы сталкиваемся со случайными числами, то всегда должны помнить о вопросе их распределения. Не будем здесь углубляться в теорию мат. статистики, а рассмотрим только практические следствия.
Самые стандартные классы-генераторы случайных чисел создают равномерно распределенные значения. Любое число возникает с одинаковой вероятностью – это ожидаемое поведение для большинства задач. Например, метод
Random.nextInt(1)
будет генерировать примерно одинаковое количество значений 0 и 1.Однако, программист легко может "испортить" равномерность значений последующими операциями. Возьмем вместо предыдущего примера
Random.nextInt(2)%2
. Такая конструкция тоже будет возвращать 0 или 1. Однако, третье возможное значение из генератора, 2, будет тоже превращено в 0. Значит, ответ 0 будет возникать в два раза чаще чем 1.Это та причина, по которой лучше не пользоваться общепринятым «школьным» арифметическим ограничением с помощью оператора
%
. Вместо этого следует оставить заботу о распределении разработчикам библиотеки, и пользоваться в прикладном коде готовыми методами с границами.Если задача подразумевает более плотную работу с распределениями, стоит воспользоваться специализированной библиотекой вроде Apache Commons Math.
👉@BookJava
👍5❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Используем Elasticsearch вместе со Spring Boot
В это статье я хочу рассказать о том, как мы можем интегрировать Elasticsearch в наше приложение на Spring Boot. Этот проект предназначен для ознакомления с технологиями и служит скорее шпаргалкой/пособием или же фундаментом для дальнейшего погружения в тему.
В эру огромных объемов данных осуществление эффективного поиска является ключевым фактором для успешного бизнеса. К счастью, разработчикам сегодня доступны инструменты, которые могут справиться с такими задачами, одним из которых является Elasticsearch.
Elasticsearch - это мощный и гибкий open-source инструмент, который позволяет создавать быстрые и масштабируемые системы для поиска и анализа данных. Он представляет собой распределенную поисковую и аналитическую систему, которая может интегрироваться с многими современными технологиями.
В этой статье мы рассмотрим, как интегрировать Elasticsearch в Spring Boot приложение для поиска пассажиров в контексте авиаперевозок. Это полезный пример, который поможет нам детально изучить, как Elasticsearch может быть использован в реальных проектах.
Будем изучать основные концепции Elasticsearch и его преимущества, а также подробно рассмотрим проект, использующий Elasticsearch для выполнения запросов на основе данных о пассажирах. Вы также узнаете, как написать код на Java для реализации функциональности поиска пассажиров с помощью Elasticsearch.
Итак, пристегните ремни, дорогие читатели, мы начинаем наше путешествие в мире Elasticsearch и Spring Boot!
https://habr.com/ru/articles/766674/
👉@BookJava
В это статье я хочу рассказать о том, как мы можем интегрировать Elasticsearch в наше приложение на Spring Boot. Этот проект предназначен для ознакомления с технологиями и служит скорее шпаргалкой/пособием или же фундаментом для дальнейшего погружения в тему.
В эру огромных объемов данных осуществление эффективного поиска является ключевым фактором для успешного бизнеса. К счастью, разработчикам сегодня доступны инструменты, которые могут справиться с такими задачами, одним из которых является Elasticsearch.
Elasticsearch - это мощный и гибкий open-source инструмент, который позволяет создавать быстрые и масштабируемые системы для поиска и анализа данных. Он представляет собой распределенную поисковую и аналитическую систему, которая может интегрироваться с многими современными технологиями.
В этой статье мы рассмотрим, как интегрировать Elasticsearch в Spring Boot приложение для поиска пассажиров в контексте авиаперевозок. Это полезный пример, который поможет нам детально изучить, как Elasticsearch может быть использован в реальных проектах.
Будем изучать основные концепции Elasticsearch и его преимущества, а также подробно рассмотрим проект, использующий Elasticsearch для выполнения запросов на основе данных о пассажирах. Вы также узнаете, как написать код на Java для реализации функциональности поиска пассажиров с помощью Elasticsearch.
Итак, пристегните ремни, дорогие читатели, мы начинаем наше путешествие в мире Elasticsearch и Spring Boot!
https://habr.com/ru/articles/766674/
👉@BookJava
👍2