Включение Scala в существующие проекты Java EE? - PullRequest
4 голосов
/ 26 августа 2011

У меня много вопросов о скале.Я немного читал, гуглял и SO'ing и не нашел четких доступных ответов.Я еще не на стадии экспериментов / создания прототипов, поэтому я подумал, что с тем же успехом могу просто задать свои вопросы и получить некоторые экспертные знания, которыми все могут поделиться.Заранее спасибо!

Для чего на самом деле scala.exe?Может кто-нибудь дать краткое изложение того, что scala.exe делает иначе, чем java.exe?Есть ли в scala.exe черная магия времени выполнения, кроме обеспечения оболочки интерпретатора?

( ОБНОВЛЕНИЕ : scala.exe не существует. Scala поставляется с простым пакетным скриптомlauncher, scala.bat (или scala на * nix). Среда выполнения Scala - java.exe со стандартными библиотеками Scala в CLASSPATH.)

Могу ли я связать код Scala сСуществующая программа Java, если я запустил процесс с java.exe?Если да, нужно ли менять CLASSPATH на ссылки в jar стандартной библиотеки scala?Кроме того, если я запускаю с java.exe, какие-либо новые параметры -javaagent требуются для ссылки в Scala-код?Есть ли способ включить scala-код в jars в мой существующий .war-файл веб-приложения (или в WEB-INF / classes) и запустить его?

И наоборот, если scala.exe требуется в моем модуле запуска сервера приложений Java EE для выполнения кода scala + java, может ли scala.exe принять все мои эзотерические параметры -XX: InsertYourCrazySunPerfSwitchHere командной строки JVM?

Наконец, является ли включение нового кода Scala в существующее веб-приложение Spring Framework + JSF2 чем-то вроде попытки вставить круглый колышек в квадратное отверстие?Я вижу длинные списки веб-фреймворков, разработанных для Scala, которые доступны, но я задавался вопросом, насколько гладко или как неловко будет работать Scala с такими инструментами, как JSF2.Являются ли эти веб-фреймворки на основе Scala побочным продуктом не-Java-разработчиков, мигрирующих в сообщество Scala и желающих воссоздать свои фреймворки на языке Scala?Или есть что-то внутреннее в том, как JSF2 спроектирован таким образом, что, когда я стал экспертом в Scala, я увидел бы, что это беспорядочный беспорядок, пытающийся смешать два, и я потратил впустую свое время?

1 Ответ

4 голосов
/ 26 августа 2011

Вы задали много вопросов. Я постараюсь обратиться к ним всем по одному.

Вопрос:

Для чего на самом деле scala.exe? Может кто-нибудь дать краткое изложение о том, что scala.exe работает иначе, чем java.exe? Есть ли во время выполнения черная магия в scala.exe кроме предоставления оболочки интерпретатора?

scala.bat может делать несколько вещей в зависимости от аргументов:

  • может запускать интерпретатор оболочки
  • может выполнять файл скрипта Scala
  • может выполнять скомпилированный бинарный файл Scala из пути к классам
  • может выполнить файл jar

При запуске двоичных файлов scala.bat просто вызывает java.exe с scala-library.jar, добавленным в путь к классам. Нет никакой магии.

Вопрос:

Могу ли я связать в Scala-код с существующей Java-программой, если я запустил процесс с java.exe? Если так, мой CLASSPATH должен измениться, чтобы связать в стандартной библиотеке скала? Также, если я запускаю с java.exe, любые новые параметры -javaagent, необходимые для ссылки в Scala код

Все бинарные файлы Scala - простые банки. Единственное отличие состоит в том, что им требуется библиотека времени выполнения scala (scala-library.jar). Поэтому при запуске с java.exe вы просто следуете инструкциям, которые вы выполняете при запуске jar с зависимостями. Опять же, нет никакой магии и никаких дополнительных переключателей.

Вопрос:

Есть ли способ включить скала-код в jars в мою существующую сеть? файл приложения .war (или в WEB-INF / classes) и он запускается?

Банки Scala похожи на банки java, поэтому вы можете обращаться с ними как с таковыми.

Вопрос:

Наконец, включение нового кода Scala в существующий Spring Framework + JSF2 веб-приложение, как попытка вписать круглый колышек в квадратное отверстие? Я вижу длинные списки веб-фреймворков, разработанных для Scala которые есть в наличии, но мне стало интересно, насколько гладкая или как неуклюжая Scala будет играть с такими инструментами, как JSF2. Являются ли они на основе Scala веб-фреймворки - побочный продукт не-Java разработчиков, переходящих на Сообщество Scala и желающие воссоздать свои рамки du jour в Скала язык? Или есть что-то внутреннее в том, как JSF2 разработан так, что, как только я стал экспертом в Scala, я бы увидел, что это неряшливый беспорядок, пытающийся смешать два, и я потратил впустую свое время?

Использование библиотек Java из Scala, по крайней мере, так же просто, как их использование из Java, и зачастую гораздо более плавное. С другой стороны, Scala намного богаче Java. Поэтому вы почувствуете, что Java-библиотек не хватает, как только вы начнете привыкать к Scala.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...