Обновить
128K+

Java *

Объектно-ориентированный язык программирования

120,02
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Удаленная отладка Spring Boot приложений (IntelliJ + Eclipse)

Время на прочтение3 мин
Охват и читатели20K

Локальная разработка на вашей машине удобна. Но как только вы развернете свое приложение, у вас будет совсем другая среда, что может привести к непредвиденному поведению или ошибкам. Использование ручной печати


System.out.println («Теперь мы находимся здесь, а переменная X is =» + x); 

делает код вашего приложения довольно громоздким и его выполнение занимает много времени. К счастью в Java есть зрелая отладочная экосистема. Это позволяет нам удаленно отлаживать приложения Spring Boot и анализировать его рабочий процесс на удаленном сервере / облаке.


Чтобы показать вам, насколько на самом деле проста удаленная отладка с помощью Java, я буду использовать приложение Spring Boot 2.3, работающее на Java 11. Я разверну приложение как в виде контейнера Docker, так и с помощью старой школы java -jar… way. Наконец, вы узнаете, как удаленно отлаживать интерфейс REST с помощью IntelliJ IDEA (2019.1) и Eclipse (2019-03).

Читать дальше →

Маленькие оптимизации в Java 9-16

Время на прочтение29 мин
Охват и читатели20K

Когда выходит новая версия Java, главные фичи всегда активно обсуждают. Но есть и работа, которая обычно остается «невидимой»: небольшие оптимизации в стандартной библиотеке. Они помогают нам, незаметно ускоряя наш код и ничего не требуя взамен, а мы даже ничего о них не знаем!


Эту ситуацию исправляет Тагир Валеев (lany), рассказывая о таких оптимизациях. Сначала он выступил на Joker 2019 с докладом «Java 9-14: маленькие оптимизации», можете посмотреть его видеозапись. Затем, поскольку зрителям очень понравилось, на JPoint 2020 он развил тему. А теперь мы решили сделать из второго доклада пост для Хабра, чтобы его можно было не только увидеть, но и прочитать.



Далее под катом текст пойдет от лица спикера.

Читать дальше →

Делаем динамический отчет средствами JPA Criteria.Api

Время на прочтение5 мин
Охват и читатели32K
Очень часто в корпоративной разработке происходит диалог:

image

Сталкивались?

В данной статье мы рассмотрим, каким образом можно сделать запросы по таблице с изменяющимся списком критериев в среде Spring+JPA/Hibernate без прикручивания дополнительных библиотек.
Читать дальше →

ZTools для Apache Zeppelin

Время на прочтение9 мин
Охват и читатели2.9K

Zeppelin — это интерактивный блокнот, очень полюбившийся дата-инженерам. Он умеет работать со Spark и отлично подходит для интерактивного анализа данных.


Проект недавно добрался до версии 0.9.0-preview2 и активно развивается, но, тем не менее, множество вещей всё ещё не реализованы и ждут своего часа.


Одна из таких вещей — API для получения дополнительной информации о том, что происходит внутри блокнота. С одной стороны, там имеется API, который полностью решает задачи по высокоуровневому управлению ноутбуками. Но если вам нужно что-то нетривиальное — плохие новости.


Читать дальше →

Знакомимся с Event Sourcing. Часть 2

Время на прочтение5 мин
Охват и читатели7.9K
Перевод статьи подготовлен в преддверии старта курса «Java Developer. Professional».
Читать первую часть.





Особенности реализации Event Sourcing


С технической точки зрения для Event Sourcing требуется только реализация записи событий в журнал и чтения из журнала.

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

Что такое Vertx, и почему он подходит для РСХБ

Время на прочтение6 мин
Охват и читатели29K

Как известно, кто убьет дракона, тот сам становится драконом. Spring, как фреймворк общего назначения, был очень хорош на фоне java EE 10 лет назад. Но сейчас стал очень монструозным и тяжелым на подьем. Сегодня рассмотрим Vertx как фреймворк-основу для создания микросервисов.


Что такое Vertx?


Читать дальше →

JavaFX: класс Controller и fx:id в FXML

Время на прочтение9 мин
Охват и читатели18K


Мне кажется, не оправданно много полезных статей не только не посвящают и двух слов самому животрепещущему вопросу при начале работы с JavaFX, но и посвятив, все равно не раскрывают его полностью. А вопрос возникает следующий: как наладить связь ваших node по их fx:id и вашего кода. Как использовать их в разных частях кода, чтобы ссылаться на ваш программный интерфейс? Вот на это, я и постараюсь ответить под катом

Читать дальше →

Ищем утечки памяти с помощью Eclipse MAT

Время на прочтение7 мин
Охват и читатели16K
Пожалуй, все java-разработчики, участвующие в коммерческих проектах рано или поздно сталкиваются с проблемой утечки памяти, влекущей за собой медленную работу приложения и почти неизбежно приводящую в итоге к известной OutOfMemoryError. В данной статье будет рассмотрен реальный пример такой ситуации и способ поиска ее причины с помощью Eclipce Memory Analizer.
Читать дальше →

«Прелесть в том, что мы строили с чистого листа»: о разработке в НСПК

Время на прочтение13 мин
Охват и читатели17K


Наверное, ни одно связанное с онлайн-банкингом событие за последние годы не было так ощутимо для рядовых российских пользователей, как появление Системы быстрых платежей (СБП) Банка России.


А этим летом на нашей Java-конференции партнёром стала компания НСПК, которая выступает операционным платёжным и клиринговым центром СБП, а также отвечает за обработку всех внутрироссийских платежей по банковским картам. То есть для России её задачи уникальные — поэтому интересно задать вопросы о разработке в такой компании.


Мы и задали. Вопросы получились из трёх частей:


  • Сначала попросили кратко объяснить, как вообще выглядят обработка платежей по картам и операций в СБП.
  • Потом перешли к общей картине IT в НСПК.
  • А затем конкретно к жизни разработчика в такой компании: что ему требуется знать, с чем он сталкивается и так далее.
Читать дальше →

Добавляем ORM в проект за четыре шага

Время на прочтение5 мин
Охват и читатели4.3K

Представим, что вашему проекту срочно понадобился ORM, и вы хотите внедрить его как можно быстрее. В этой статье я хочу рассказать, как это можно сделать всего за четыре шага на примере использования open source проекта Apache Cayenne.


Читать дальше →

Multi connection IBM MQ с использованием Spring

Время на прочтение6 мин
Охват и читатели9.1K
Приведу пример как сконфигурировать несколько endpoints для подключения к IBM MQ.

Цель:

  • читать из нескольких очередей, именованных одинаково, но находящихся на разных хостах/администраторах очередей
  • писать ответ в рандомно определенную ноду

0. Будем считать, что вы на данный момент уже развернули MQ или пользуетесь чьей-то.
Читать дальше →

Вышла Java 15

Время на прочтение3 мин
Охват и читатели15K

Сегодня в свет вышла новая, 15-я версия платформы Java.


Скачать JDK 15 можно по следующим ссылкам:


  • Oracle JDK (проприетарная версия, обратите внимание на ограничения в использовании).
  • OpenJDK (бесплатная версия)

В новый релиз попало 14 JEP'ов и сотни более мелких улучшений. Если хочется ознакомиться с полным списком изменений с точностью до всех JIRA-тикетов, то их можно посмотреть на сайте Алексея Шипилёва. Также если интересны все изменения API, то их можно посмотреть здесь.


Читать дальше →

Как построить надежное приложение на базе Event sourcing

Время на прочтение8 мин
Охват и читатели6.7K

Привет! В этой статье я хочу рассказать, как из модного микросервисного приложения можно сделать рабочую, управляемую систему с помощью трех проверенных годами методик: на примере проекта внутренней performance-based рекламы Joom.


Читать дальше →

Ближайшие события

Микросервисы с коммуникацией через Axon

Время на прочтение5 мин
Охват и читатели9.1K
В этом простом туториале мы сделаем пару микросервисов на Spring Boot и организуем между ними взаимодействие через фреймворк Axon.




Читать дальше →

Репликация Oracle и UCP Fast Connection Failover

Время на прочтение17 мин
Охват и читатели4.7K

Иногда в конфигурации Java-приложения есть IP-адрес "Primary" сервера базы данных, который может поменяться, например, в следующих случаях:

  • Контролируемая смена ролей баз данных. "Primary" становится "Standby" и наоборот, "Standby" становится "Primary". Такая процедура обычно называется "Switchover".
  • Аварийная смена роли "Standby" на "Primary". Это обычно называется "Failover".

В обоих случаях приложение должно не только "знать" про IP-адрес нового "Primary" сервера, но и уметь к нему обратиться тогда, когда это нужно. Далее следует краткая инструкция того, как это можно сделать с помощью Oracle Universal Connection Pool (UCP), а также демонстрация "Switchover".
Читать дальше →

Что нового в Java 15?

Время на прочтение8 мин
Охват и читатели30K


Скрытые классы, запечатанные классы, текстовые блоки, записи и EdDSA: в JDK 15 имеется много ценного.

Как гласит одно из моих любимых выражений, в Java 15 присутствует много богатого шоколадного добра. В новую версию (релиз 15 сентября 2020г.) включены 14 важных изменений (JEP), направленных на совершенствование JDK. В этой статье дается краткий обзор новинок на основе информации, содержащейся в JEP.

Читать дальше →

Распознавание текста на картинке с помощью tesseract на Kotlin

Время на прочтение7 мин
Охват и читатели18K

Ни для кого не секрет, что Python прочно занял первенство в ML и Data Science. А что если посмотреть на другие языки и платформы? Насколько в них удобно делать аналогичные решения?


К примеру, распознавание текста на картинке.

Читать дальше →

10 Kubernetes-инструментов из разряда «важно», шпаргалка по созданию Kubernetes-операторов на Java… и многое другое

Время на прочтение3 мин
Охват и читатели4.1K


Прокачивайте скилы, читайте, смотрите, думайте, применяйте на практике! Станьте частью DevNation!
Читать дальше →

Написание десктопного приложения с помощью JavaFX

Время на прочтение10 мин
Охват и читатели4.9K
Решил я написать исполняемый jar файл с удобным интерфейсом для расчета своих повседневных задач по работе. Начал с самых простых.

image

Нужно определить критические напряжения на сдвиг исходя из типа закрепления и отношения сторон прямоугольной пластины.
Читать дальше →

Пример создания утилиты для Unigraphics NX с помощью библиотеки NXOpen на языке Java

Время на прочтение9 мин
Охват и читатели8.2K
Решил рассказать, кому интересно, как можно создавать любые утилиты для Unigraphics NX с помощью библиотеки NXOpen и языка программирования Java.В качестве примера моя утилита будет строить 2d сетку на все свободных телах и гранях(это может быть полезно для задачи оптимизации).

Необходимую информацию по библиотеке NXOpen можно найти на официальном сайте.

В корневой папки NX лежат необходимые нам библиотеки по умолчанию, а так же примеры:

  • C:\Program Files\Siemens\NX 12.0\NXBIN с расширением jar
  • C:\Program Files\Siemens\NX 12.0\UGOPEN с расширением jar
  • C:\Program Files\Siemens\NX 12.0\UGOPEN\SampleNXOpenApplications\Java.

Для упрощения написания кода можно за основу использовать журнал записи своих действий в текстовый файл.По умолчанию Unigraphics NX записывает на языке Visual Basic, но в настройках можно поменять на Java или на любой другой из списка доступных:



Вот пример записи журнала в текстовый файл.
Читать дальше →