powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Call/create Scala class from Java in SpringBoot Project?
5 сообщений из 5, страница 1 из 1
Call/create Scala class from Java in SpringBoot Project?
    #39398994
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,

создается небольшое веб-приложение на основе SpringBoot.
Но некоторые функции будут делаться другим человеком, и он бы хотел все делать на Scala+Spark и так д..
Scala-Функционалитет закрыт, тоисть в Scala классах будет только вычисление, и со стороны Java нужно будет только создать объект, вызвать функцию, получить расчет в форме String или POJO.

В принципе, у меня сейчас есть работающее приложение на SpringBoot, которое полностью вплоть до старта на Scala.
Сейчас стал вопрос разработки безопасности и так д.. И понимаю, что придется искать другие библиотеки, в любом случае будут "танцы с бубнами", так как со скалой, знаком очень плохо.

Посему решил все делать на привычной Java а все нужные вычисления на Scala.
В итоге появилось несколько общих вопросов..

1. С какими проблемами я могу столкнуться если буду например из Java создавать Scala-object? ScalaObject sc = new ScalaObject(str); Например как обрабатывать Exceptions и так д..
2. У меня gradle проект, нужно ли в нем разделять классы на src/main/java и src/main/scala или можно все в один, только для java - .java а для scala - .scala
3. Может кто уже делал похожие проекты, буду благодарен за подсказки ссылки и так д..

Спасибо!
...
Рейтинг: 0 / 0
Call/create Scala class from Java in SpringBoot Project?
    #39398997
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_
1. С какими проблемами я могу столкнуться если буду например из Java создавать Scala-object? ScalaObject sc = new ScalaObject(str); Например как обрабатывать Exceptions и так д..

Scala классы это те же JVM классы, если вам надо грубо говоря вызвать какой-то метод класса и вернуть обычный POJO, то никаких проблем не будет. Вам надо просто вынести API взаимодействия в отдельный jar, и описать там все интерфейсы и POJO без scala магии, вроде implicit. В проект java добавить зависимость на этот jar и спокойно работать.

Насчет эксепшенов -

Код: java
1.
2.
3.
4.
5.
6.
7.
import java.io._
class Reader(fname: String) {
private val in =
new BufferedReader(new FileReader(fname))
@throws(classOf[IOException])
def read() = in.read()
}


В таком случае они будут видны для java кода.
_webdev_2. У меня gradle проект, нужно ли в нем разделять классы на src/main/java и src/main/scala или можно все в один, только для java - .java а для scala - .scala

Наверняка можно, я правда работаю с мавеном там все заводится с полтыка. Gradle как-то не зашел мне
_webdev_3. Может кто уже делал похожие проекты, буду благодарен за подсказки ссылки и так д..

Делали конечно, в целом никаких проблем нет, если вседелать по уму и выносить взаимодействие в отдельный jar,не использующий магию scala

Хорошо описано в книге Scala in Depth. Но она довольно тяжелая для новичков, хотя раздел по java интеграции вы должны осилить.

Далее, почти в каждой книге по Scala есть раздел по интеграции с Java, везде можно почерпнуть как это делается.
Например Programming Scala 3rd Edition, Programming in Scala(это разные книги), Scala for Java developers, Scala cookbook, Atomic scala, не говоря о куче статей в инете.

В общем очень советую Scala in Depth, 10 глава. Там еще хорошо описаны некоторые проблемы с боксингом\анбоксингом и визибилити проблемы(private protected static и тд)
...
Рейтинг: 0 / 0
Call/create Scala class from Java in SpringBoot Project?
    #39399072
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В начале хочу поблагодарить за хороший и развернутй ответ.
забыл никScala классы это те же JVM классы, если вам надо грубо говоря вызвать какой-то метод класса и вернуть обычный POJO, то никаких проблем не будет. - ' - Да, это я понимаю.

забыл никВам надо просто вынести API взаимодействия в отдельный jar, и описать там все интерфейсы и POJO без scala магии, вроде implicit. В проект java добавить зависимость на этот jar и спокойно работать. - Если я вас верно понимаю, ты вы предлагаете создать сл структуру? Еще 2 проекта. Один легковесный(Api) с интерфейсами и POJO другой уже с непосредственной имплементацией и в веб-проекте добавить 2 jar нужно же не только имплементация, но и реализация.

забыл никВ таком случае они будут видны для java кода. - понял, думаю в процессе уже нагуглю.

забыл никНаверняка можно, я правда работаю с мавеном там все заводится с полтыка. Gradle как-то не зашел мне - я тоже без проблем дружу с maven, на работе используется. Просто хочется немножко и gradle понимать, поэтому и так. Та в gradle не особо и сложнее ))

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

забыл никjar,не использующий магию scala - Что Вы имеете в виду?

забыл никХорошо описано в книге Scala in Depth. Но она довольно тяжелая для новичков, хотя раздел по java интеграции вы должны осилить. - Спасибо. Я уже читал статьи некоторые и имею небольшое поняте в функц программировании. Обязательно прочту этот раздел.

забыл никВ общем очень советую Scala in Depth, 10 глава. Там еще хорошо описаны некоторые проблемы с боксингом\анбоксингом и визибилити проблемы(private protected static и тд) - понял, будемс читать.
...
Рейтинг: 0 / 0
Call/create Scala class from Java in SpringBoot Project?
    #39399124
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_webdev_Если я вас верно понимаю, ты вы предлагаете создать сл структуру? Еще 2 проекта. Один легковесный(Api) с интерфейсами и POJO другой уже с непосредственной имплементацией и в веб-проекте добавить 2 jar нужно же не только имплементация, но и реализация.

Ну примерно так, да. Но это уже при деплое непосредственно на сервер. Я же говорил скорее о том как разбить проект во время разработки. Я бы делал так - 3 проекта 1) java-проект, который непосредственно зависит от scala-java-integration(интерфейсы и POJO), но не зависит от Scala. 2) scala-java-integration - просто jar 3) scala проект, тоже с зависимостью от scala-java-integration. Когда же будете деплоить, то да - в варку надо будет добавить еще и проект scala. Смысл в том, чтобы при разработке вы не видели scala проект, только интерфейсы
_webdev_ был бы благодарен за ссылку, если есть на открытый репозиторий.
Этим не помогу.
_webdev_забыл никjar,не использующий магию scala - Что Вы имеете в виду?
Ровно то, что и сказал - точка соприкосновения должен быть jar в котором тупо интерфейсы и доменные объекты
...
Рейтинг: 0 / 0
Call/create Scala class from Java in SpringBoot Project?
    #39399139
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл никНу примерно так, да. Но это уже при деплое непосредственно на сервер. Я же говорил скорее о том как разбить проект во время разработки. Я бы делал так - 3 проекта 1) java-проект, который непосредственно зависит от scala-java-integration(интерфейсы и POJO), но не зависит от Scala. 2) scala-java-integration - просто jar 3) scala проект, тоже с зависимостью от scala-java-integration. Когда же будете деплоить, то да - в варку надо будет добавить еще и проект scala. Смысл в том, чтобы при разработке вы не видели scala проект, только интерфейсы - Да, мы так и делаем в некоторых проектах. ) - Здравствуй мултимодульный проект. Пасиб.

забыл никРовно то, что и сказал - точка соприкосновения должен быть jar в котором тупо интерфейсы и доменные объекты - ааа, понятно.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Call/create Scala class from Java in SpringBoot Project?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]