Для создания изоморфных приложений на React обычно используется Node.js в качестве серверной части. Но, если сервер пишется на Java, то не стоит отказываться от изоморфного приложения: в Java входит встроенный javascript движок (Nashorn), который вполне справится с серверным рендерингом HTML с помощью React.
Код приложения, демонстрирующего серверный рендеринг React с сервером на Java, находится на GitHub. В статье буду рассмотрены:
- Сервер на Java в стиле микросервиса на основе Netty и JAX-RS (в реализации Resteasy) для обработки web-запросов, с возможностью запуска в Docker.
- Dependency Injection с использованием библиотеки CDI (в реализации Weld SE).
- Сборка javascript бандла с помощью Webpack 2.
- Настройка редеринга HTML на сервере с помощью React.
- Запуск отладки с поддержкой «горячей» перезагрузки страниц и стилей с использованием Webpack dev server.