java
-
@Before @After в тестах
-
Byte Buddy
Сайт проекта bytebuddy.net
Как изменить код работающего Java-приложения? Пишем свой HotSwap -
Camunda start
Ссылки:
https://www.holunda.io/camunda-bpm-data/snapshot/
Camunda BPM Data с примерами от энтузиастов. Добавлена типизация переменных.
Пример на Java
Пример на Kotlin
Для запуска выполнить:cd ~/prog/java/spring-boot/camunda_springboot_db ./run.sh
В браузере открыть: http://localhost:8080
Откроется страница:
имя/пароль: demo/demo
После ввода откроется страница:
http://localhost:8080/camunda/app/welcome/default/#!/welcome
Cocpit (админка для Camunda):
-
Dagger
Dagger — фреймворк для внедрения зависимостей (Dependency Injection, DI) в приложения на платформе Java. Разрабатывался компанией Square, но сейчас поддерживается Google.
Документация: https://dagger.dev/dev-guide/
Github: https://square.github.io/dagger/
Очень примитивный пример: https://github.com/cherepakhin/dagger_simple
Hello World: https://github.com/cherepakhin/dagger_hello_worldЗадачи Dagger
- Автоматическое внедрение зависимостей в объекты (классы, интерфейсы, контексты и другие объекты);
- Управление жизненным циклом зависимостей;
- Создание синглтонов (единственных экземпляров) или одноразовых зависимостей (создаются новые экземпляры при каждом запросе);
- Обработка сложных зависимостей;
- Модульное тестирование (возможность заменять реальные зависимости на фиктивные или подставные объекты).
-
GSON ссылки
Ссылки
-
GWT
Стартовый проект GWT
Getting Started GWT
GWT Quick Guide
Работа с GWT с библиотекой ExtGWT (очень неплохо описано)
Новое в Ext GWT 3.0 (... UI binder забавный. Типа была разметка html и логика на js, теперь разметка на xml и логика на java...)
https://javastudy.ru/gwt/gwt-hello-world-example
Интеграция GWT со Spring Boot
Начальная настройка проекта, создание и запуск простейшего проекта GWT + Spring Boot: GitHub Quick Start GWT Boot -
GWT + Spring Boot
Стартовый проект GWT
Getting Started GWT
GWT Quick Guide
Работа с GWT с библиотекой ExtGWT (очень неплохо описано)
Новое в Ext GWT 3.0 (... UI binder забавный. Типа была разметка html и логика на js, теперь разметка на xml и логика на java...)
https://javastudy.ru/gwt/gwt-hello-world-example
Интеграция GWT со Spring Boot
Начальная настройка проекта, создание и запуск простейшего проекта GWT + Spring Boot: GitHub Quick Start GWT Boot -
GWTP
GWTP (GWT Platform) — полноценная платформа Model-View-Presenter для приложений Google Web Toolkit. Она предназначена для упрощения разработки приложений на основе GWT. Что-то типа MVC для GWT.
Wiki GWTP
Некоторые возможности GWTP: -
Immutable Java object
Что такое неизменяемый объект? Когда вы создаете новое значение для такого объекта, на самом деле создается новый объект, и старый объект остается неизменяемым. Это будет более эффективным по времени и памяти, чем изменение изначального объекта. Это обеспечивает безопасность многопоточного программирования, поскольку неизменяемые объекты могут быть разделены между несколькими потоками без риска изменений и ошибок.
-
Java Spring Boot и WebSocket
WebSocket (веб-сокет) — сетевой протокол передачи данных, который обеспечивает постоянное двустороннее (full-duplex) соединение между клиентом и сервером через одно TCP-соединение. Главная особенность — поддержка актуальности соединения без новых запросов от клиента.
Работа с WebSocket со Spring Boot описана Readme.md проекта https://github.com/cherepakhin/messaging-stomp-websocket. Задача проекта в передаче сообщений через веб-сокеты между браузерами клиентов, находящихся на разных машинах.
Демонстрация работы приложения:
Другой пример с Quarkus по ссылке https://github.com/cherepakhin/websockets-quarkus. -
JavaFX, Spring Boot, WebFX
JavaFX
-
JBang
JBang — это CLI - инструмент, который позволяет запускать Java-код прямо из КОМАНДНОЙ СТРОКИ, без сложной структуры проекта, файлов сборки (Maven/Gradle) и явного объявления pom.xml.
Ссылки:- https://github.com/jbangdev/jbang
- https://www.baeldung.com/jbang-guide
- https://github.com/dmakariev/examples.git
Инициализация и запуск Hello World в консоли с помощью команды `init`:
-
Karaf в Kubernetes
Модульный karaf в микросервисе. Мозг в трубочку. А почему бы не кубер в bundle карафа? А может сразу windows в bundle? (были опыты запуска урезанного windows в bundle). Речь идет о модульной java. Модульная java? А это она! Karaf это реализация OSGi. OSGi - шина с плагинами (java-модулями, в терминах OSGi называется bundle), ктр. взаимодействуют между собой. Один bundle отправляет сообщение в шину через интерфейс, предоставленный шиной, а другой/другие bundle, ктр. заявляют, что могут реализовать интерфейс, обрабатывают сообщение. При этом источник даже не знает кому и сколько читателей. И еще одна фишка Karaf (может быть основная) замена функциональности без остановки всего сервиса.
-
Kotlin style для Java программистов
Конспект Kotlin Code Style: Best Practices for Former Java Developers
Частые ошибки:
- Использование
if (x != null)вместо оператора Elvis? - Цикл и временная коллекция для результатов, вместо
filter, map if/else ifвместоwhen- Частое использование
var, где можно использоватьval
- Использование
-
Mockito
1. Mockito.mock() (ЭТО МЕТОД)
Метод Mockito.mock() позволяет нам создать фиктивный объект класса или интерфейса. -
Netty
Netty - удобные клиент и сервер для взаимодействия программ по сети. Можно чем угодно обмениваться (не только json).
Конспект
Пример -
Spring Boot + Camel
SpringBoot + Camel REST API
Репозиторий на GitHub: https://github.com/cherepakhin/simple_boot_camel
echo $JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-amd64Запуск:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 ./mvnw spring-boot:run
-
Spring MVC
hr-admin
https://github.com/cherepakhin/hr_admin

Заготовка для UI проектов со Spring Boot Web
Java 17
Основная цель ТОЛЬКО FRONTEND.- В качестве template использован Freemarker с помощью библиотеки spring-boot-starter-freemarker
- Простой CRUD. База данных H2.
- Использован Tailwind CSS Framework(TailwindCSS) - CSS-фреймворк для оформления интерфейсов.
- При тестировании использован AssertJ
- Тесты в BDD стиле с Mockito (смотри файл EmployeeControllerTest.java)
- DataJpaTest в (смотри файл EmployeeRepositoryDataJpaTest.java)
- Использован GigaChat
Развернуто тут: https://v.perm.ru/hr_admin/ (запустить ~/temp/hr_admin.sh)
spring-boot-mdl
-
UI на java
Оглавление:
-
Vaadin
Tutorial "Components and Layouts": https://vaadin.com/docs/v14/flow/tutorial/components-and-layouts
Для разработки Vaadin приложений, кроме java, нужен настроенный node:$ node -v v20.0.0
Описание Vaadin 8 https://vaadin.com/framework
Генерация Spring Boot в Spring Initializr https://start.spring.io/
Страница 1 из 3