Рубрика «spring framework» - 6

У меня есть некоторый опыт в реализации систем на базе микросервисной архитектуры и я хотел бы поделится вопросами (и ответами), которые возникают при реализации подобных проектов. К сожалению, я не имею права распространяться о проектах в которых я участвовал, поэтому я выдумал собственный сферический проект в вакууме. В этом проекте нам встретится множество стандартных проблем.

Хочу сразу заметить, что имплементация будет рудиментарной и служит только базой для постановки вопросов. В любом случае, я надеюсь, вы найдете в статье пару интересных мыслей и ссылок.

Мы увидим, сколько интересных моментов могут возникнуть при написании всего трех классов и зададимся вопросом, должен ли в данном случае принимать решение архитектор или разработчик может решить эту проблему сам.

image
Читать полностью »

image В этом посте я хочу показать как использовать отложенные сообщения в RabbitMQ. В качестве примера задачи, где удобно использовать отложенную очередь, возьму механизм постбеков (s2s ping back, s2s pixel).

В двух словах о механизме постбеков:

1. Происходит некое событие
2. Ваше приложение должно уведомить об этом событии сторонний сервис
3. Если сторонний сервис оказался недоступен, то необходимо повторить уведомление еще раз через несколько минут

Для повторного уведомления я буду использовать отложенную очередь.
Читать полностью »

Мой предыдущий пост возымел определенный эффект – несколько человек посчитали его очень мотивирующим и попросили меня дать некоторые советы и рекомендации, с чего же начать карьеру разработчика. Очевидно, вопрос слишком широкий и не имеет ответа как такового, поэтому я поставлю его более узко: что должен знать молодой java-разработчик, пишущий back-end?

Этот пост не является курсом молодого бойца, а является лишь:

  • Моей попыткой выбрать основные направления, в которых должен ориентироваться каждый начинающий java back-end разработчик.
  • Небольшим собранием материалов к изучению.
  • Описанием тестового проекта, который разработчик должен суметь реализовать с использованием указанных инструментов.

Цель:

  • Осветить список основных инструментов экосистемы языка, которыми необходимо уметь пользоваться и понимать на базовом уровне. Я не ставлю целью дать глубокое понимание инструментов, так как это самое понимание можно приобрести лишь с опытом.
    Читать полностью »

Вот и наступила осень. Кто-то возвращается в город с центнером яблок в багажнике, кто-то — c норвежским пивом прямиком с JavaZone, а мы подготовили для вас материал, который, надеемся, скоротает дождливые вечера. Мы расскажем о трёх летних встречах JUG.ru. Посему разработчики, вернувшись из отпусков, имеют замечательную возможность запастись чашкой горячего чая, завернуться в плед и посмотреть видео с наших митапов.

Итак, летом у нас было три встречи:
    — Douglas Hawkins из Azul рассказал об особенностях работы JIT-компиляторов в HotSpot JVM;
    — Alvaro Hernandez, разработчик ToroDB, рассказал о том, как Java работает с PostgreSQL;
    — наконец, Евгений Борисов порадовал нас новой порцией загадок на тему Spring.

Читать полностью »

Привет. В этой статье я кратко расскажу о деталях реализации микросервисной архитектуры с использованием инструментов, которые предоставляет Spring Cloud на примере простого концепт-пруф приложения.

Микросервисная архитектура, Spring Cloud и Docker - 1

Код доступен для ознакомления на гитхабе. Образы опубликованы на докерхабе, весь зоопарк стартует одной командой.Читать полностью »

Меня зовут Дима и я разработчик. Живу в Минске, люблю посещать зарубежные конференции. Ну вот устал однажды ездить и решил сходить локально. Но выбора было мало. Поэтому вдвоём со своим верным товарищем решили сделать конференцию самостоятельно.
Назвали JET. Потому что начинается с J, как и Java, а ещё можно сделать слоган "Let's fly to Java world". Ну что же, как это было?

Открытие

Началось все с выступления организаторов, где мы поделились тем, как зарождалась идея конференции. Рассказали о том, как мы прошли путь в 4 месяца подготовки, и что по итогу получилось. А получилось — 3 потока концентрированных знаний, 300 участников и первый кирпичик в фундаменте дома конференции JET.

Вспомнить всё: Java-конференция JET. 28 сентября 2015. Отчёт - 1
Читать полностью »

Стоит ли использовать Spring Boot в вашем следующем проекте? - 1

Большинство моих профессиональных Java проектов за последнее десятилетие были основаны на Sring или JEE. Обе платформы развиваются достаточно уверенно, однако все ещё страдают от различных проблем.

JEE изменилась довольно резко на протяжении многих лет, но до сих пор осуждается разработчиками за подходы и решения, которые были обозначены создателями платформы как deprecated ещё начиная с версии EJB 2.x. Многие люди до сих пор называют JEE как “J2EE”, хотя изменение названия состоялось 8 лет назад!

Spring тоже заметно усовершенствовался, однако далеко не всеми пользователями это воспринимается. Невзирая на возможность создания при помощи Spring 3.x и выше современных приложений с прозрачной, неоторванной от кода конфигурацией, большинство проектов продолжают с избытком пестреть XML-файлами и устаревшими архитектурными решениями. Проблема в том, что много разработчиков по тем или иным причинам не меняют отработанного на предыдущих версиях подхода.

Spring и JEE по-прежнему остаются золотыми стандартами для масштабных Java-проектов и больших команд разработчиков, трудящихся над сложными enterprise-решениями. Однако, неизбежным следствием зрелости Java-сообщества сала частичная потеря прежнего энтузиазма и инновационности, что существенно ударило и по авторитету Spring.
Читать полностью »

При устройстве на работу java программистом меня попросили написать тестовое web приложение «Телефонный справочник». Хочу поделиться с вами этим «шедевром».

Вид и функциональность приложения

  • Добавление;
  • Удаление;
  • Поиск;
  • Валидация данных.

Читать полностью »

Как известно, в Spring нельзя сделать бины для перечисляемых типов без «костылей» — у этого типа «нет» конструктора.

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'demoEnum0' defined in file [...DemoEnum0.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [ru.itbasis.demo.spring.enums.DemoEnum0]: No default constructor found; nested exception is java.lang.NoSuchMethodException: ru.itbasis.demo.spring.enums.DemoEnum0.<init>()

(коммит)

В данном посте я попробую обойти это ограничение.
Читать полностью »

Spring, позаботившись о разработчиках, предлагает удобный и простой фасад для взаимодействия с менеджером транзакций. Однако всегда ли стандартного механизма будет достаточно для реализации изощрённых архитектурных идей? Очевидно — нет.

В этом посте пойдёт речь о возможностях Spring —

  • взглянем на примеры стандартного управления транзакциями с помощью аннотаций,
  • поймём — когда решить задачу с помощью аннотаций не получится,
  • и, судя по заголовку статьи, дадим пример реализации транзакционного исполнения кода в новом потоке, создавемых с помощью Spring TaskExecutor.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js