Альфа-Банк corporate blog
Open source
JavaScript
Java
ReactJS
Comments 13
+3
Что касается jar — да, можно конечно всё делать на embedded tomcat, который поставляется со Spring Boot, вот только я не смог к сожалению разобраться с classpath. Потому что при упаковке в jar, начинают сыпаться пути к js-файлам nashorn-polyfill и bundle.js =(

Если вы сможете с этим разобраться, то буду вам признателен) А так по сути — мне например легче в продакшене крутить всё это дело в виде war =)
-1
Кончено если в продакшене уже настоен готовый сервер, то war удобнее. Просто спринг дает отличную возможность быстро стартануть прокт. И для таких примеров jar был бы в самый раз.

Я бы хотел узнать про ренедеринг html на стороне сервера, в каких случаях это имеет смысл?

P.S. При сборке в JAR у вас проблемы не с classpath, а в вызове getCanonicalPath() в файле React.java
Если сделать так, то все заработает:
Код
        nashornScriptEngine.eval("load('"+nashornPolyfillFile.getURL()+"')");
        nashornScriptEngine.eval("load('"+bundleJsFile.getURL()+"')");

Еще пришлось добавить версию в spring-boot-starter-thymeleaf, мавен почему-то ругался…
+2
«Я бы хотел узнать про ренедеринг html на стороне сервера, в каких случаях это имеет смысл?»

Ну как бе десятки тысяч IT-продуктов, которые разрабатываются на java с использованием vaadin, gwt, JSF, плюс всякие продукты на PHP да и тот же nodejs с reactjs. Это всё создано для того, чтобы выдавать html с сервера) Так что думаю смысла более чем достаточно =)
0

Вот мой проект react + spring boot, фронтом вообще со стороны явы не управляю, с этим прекрасно справляется frontend-maven-plugin. Может будет полезно.

0
А вы вообще видели что из себя представляет этот плагин? Это просто отдельный вызов и старт инстанса node js. Моя цель была — избавиться от node js как от лишнего звена в архитектуре.
0
Ну у этого подхода есть один маленький плюс, — можно фронт запустить вручную и править его на горячую. Если настроить еще и CORS, то править фронт можно будет на горячую, даже при включенном джавовском бекэнде.
-4
С подключением! Уже 2 года все кому надо в курсе. Еще недавно 9 Java вышла
+3
Вы о чём? Кому надо? О чём в курсе? Или вам просто позлословить захотелось? Тут не место для этого.
0
Все конечно хорошо, видел похожие демки в 2015, но воз и ныне там. На продакш это нельзя — на каждый запрос создать движок nashornа, грузить и компилировать скрипты это же долго и кажется десяток лет назад так и работал php?
0
Ой, да в одной только Java (как и в других подобных языках) много разных механизмов, которые существенно замедляют работу кода:
— try/catch;
— switch/case;
— reflection;
— создание потоков.

И что теперь? На Java не писать?))) Более того, запрос на каждого пользователя происходит однократно, далее вступает в работу клиентская часть. Ничего страшного.
+1
Я проверял, после первой инициализации повторно теже функции выполняются быстрее.
Но, все равно были тесты, что движок V8 намного быстрее nashornа
Only those users with full accounts are able to leave comments. , please.