Scala和Java在同一个项目中

Ayo*_*bid 7 java spring scala lift

我可以在同一个项目中使用Scala和Java吗?我是编程新手,所以这对我来说有点混乱.

从我的研究中我已经读到,获得一个好项目的最佳组合是Java/Spring或Scala/Lift的组合.为什么存在这些组合?是不是可以使用Scala with Spring或Java with Lift?

如果我使用Scala,我应该在Scala代码中拥有整个配置吗?或者我可以拥有外部资源,因此每次Scala代码都不应该修改.

man*_*ish 8

问:我可以在同一个项目中使用Scala和Java吗?

你当然可以.您可以在同一项目中一起使用大多数基于JVM的语言.

:我该如何解决?

基本思想是配置构建工具以编译Java和Scala代码.例如,如果您使用Maven,则可以使用Maven Scala插件来编译Scala代码.使用此插件有两个选项:

  1. 禁用默认情况下编译Java代码的Maven编译器插件.然后,让Maven Scala插件编译Java和Scala代码.
  2. 继续使用Maven Compiler插件编译Java.配置Maven Scala插件以仅编译Scala代码.

我更喜欢选项2,因为我发现Scala编译速度很慢(尽管每个新的Scala版本的性能都在稳步提高),因此使用Maven Compiler插件可以缩短整体构建时间.

问:是不是可以将Scala与Spring一起使用,或者将Java与Lift一起使用?

当然你可以使用Scala with Spring和Java with Lift.您可以检查使用Java,Scala和Spring的示例应用程序.

您会注意到示例应用程序具有用于Java和Scala代码的单独源文件夹,但这不是必需的,可以在Maven配置中进行配置.

问:如果我使用Scala,我应该在Scala代码中使用整个配置吗?

我假设你的意思是Spring配置.您是否希望使用XML文件,Java类或Scala类配置Spring完全取决于您.所有方法都有效.这取决于你更喜欢哪种风格和喜欢.

您甚至可以将配置分布在多个类甚至XML和类的组合中.


And*_*ann 6

简答

是的

更长的答案

Scala 和 Java 可以很好地协同工作。

Scala 的主要编译目标可以编译为运行在任何 JVM 上的 Java 字节码。除了运行时兼容性之外,Scala 语言本身还支持互操作性。

所以基本的项目设置看起来像

./src
   /main
       /scala
       /java
    test
        /scala
        /java
Run Code Online (Sandbox Code Playgroud)

一切是如何结合在一起,通过构建系统所使用,即确定sbtgradlemaven都在这里提供了很好的支持。