2009-12-23 5 views
5

Ich wollte wissen, ob Spring MVC mit einer anderen JVM Sprache als Java, z. Groovy oder Scala. Oder kann Groovy nur auf Grails laufen?Ist es möglich, Spring MVC mit Groovy oder Scala zu verwenden?

Auch wenn es möglich ist, ist das etwas, was Leute oft versuchen, oder halten sie sich einfach an das traditionell verwendete Framework?

+6

Scala ist eine statisch typisierte Sprache, keine dynamisch typisierte Sprache. –

+2

Jede Chance, die Sie die Frage bearbeiten können, um dies zu reflektieren, und geben Sie möglicherweise andere Hinweise, dass Sie die Frage nicht einfach aufgegeben haben. –

Antwort

2

Grails ist auf Spring MVC implementiert, so ist es definitiv möglich. Sie könnten auch Scala mit Spring MVC verwenden. Ich weiß nicht, dass Sie mit Spring MVC den größten Nutzen aus Scala ziehen würden - nicht viele Möglichkeiten, die funktionalen Programmierfunktionen von Scala zu nutzen - aber es gibt nichts, was Sie daran hindert, es auszuprobieren.

0

Ich kann nicht für Scala sprechen, aber ich habe Frühling mit Groovy persönlich verwendet. Match gemacht im Himmel :)

3

Sicher, Frühling hat eine ausgezeichnete Unterstützung für dynamische Sprachen wie Groovy. Es gibt ein ganzes Kapitel im Referenzhandbuch: http://static.springsource.org/spring/docs/2.5.6/reference/dynamic-language.html

Wie für scala; Ich habe es versucht und es ist möglich. Das Problem ist, dass JSP (oder die meisten Templating-Sprachen, die von Federmvc unterstützt werden) Scala-Collection-Typen nicht "versteht", so dass ich ziemlich oft zwischen Scala- und Java-Sammlungen konvertiert habe. Das sollte in Scala 2.8.0 besser sein, aber ich habe das selbst nicht getestet.

5

Spring funktioniert perfekt mit scala, weil scala kompiliert zu normalen .class Dateien, die Java-äquivalenten Bytecode sind. Ich benutze Spring und Scala die ganze Zeit. Es ist sogar möglich, die Spring-XML-Erweiterbarkeit zu verwenden Unterstützung für scala-spezifische Typen hinzuzufügen, zum Beispiel:

<bean class="my.scala.Class"> 
    <property name="listProp"> 
     <scala:list value-type="java.lang.Integer"> 
      <value>1</value> 
     </scala:list> 
    </property> 
</bean> 
0

Frühling arbeitet sehr gut mit Scala, obwohl Scala selbst Funktionen, die Sie nicht bedeuten brauchen eine Injection-Framework (wie Spring) in vielen Fällen.

Scala ist auch keine dynamische Sprache, es ist eine statische Sprache wie Java. Eines der Hauptziele von Scala war maximale Interoperabilität mit Java. Das bedeutet, dass Scala bis zu Klassendateien kompiliert, die genau wie Java-Objekte aussehen und sich anfühlen, und von externen Bibliotheken und Frameworks wie Spring nahtlos als Java-Objekte verwendet werden können.

0

Nun, was ist mit dem Schreiben der Geschäftslogik in Scala, so dass der funktionale Weg gut in Multicore-Umgebungen skaliert und der Rest von Spring und Hibernate gehandhabt wird. Ich denke, das ist eine ziemlich gute Möglichkeit, das Beste aus beiden Welten zu bekommen. Natürlich kann man Lift als Web-App-Framework nutzen, aber ich denke, Spring ist eher reif und hat mehr Funktionen. Aber die Geschäftslogik ist, wo der Ball rollt und so können Scala und FP das besser als Imperativ Java handhaben.

Richtig?