用Scala 开发 Spring MVC

      最近尝试用scala来写spring应用。工程是通过ant来编译部署的,因为通过eclipse直接部署到tomcat的话,scala文件不会被编译。后来才发现Spring已经有一个在开发中的项目 Spring Scala。后面有时间会尝试使用一下

环境及工具:eclipse4.2,eclipse scala-2.10插件,spring3.1.2.RELEASE,tomcat7

deplib: 存放scala 的相关jar包,在ant编译scala文件的时候会用到。

dist: ant 打包生成的目标目录

lib:spring web工程相关jar

src/main/webapp:web工程的webapp目录,存放 web.xml 页面等等

Ant 的相关配置:

     ant的相关配置需要添加对scala编译的支持,可以参考 http://www.scala-lang.org/node/98 官网给的相关说明。

    1. 添加scala编译的ant tool

<taskdef resource="scala/tools/ant/antlib.xml">
    <classpath>
	<pathelement location="deplib/scala-compiler.jar" />
	<pathelement location="deplib/scala-library.jar" />
	<pathelement location="deplib/scala-reflect.jar" />
    </classpath>
</taskdef>
    2. 在编译的时候优先编译 scala文件,因为比如如果你的代码中混用java和scala的话,在java去集成scala定义的接口的时候,不先编译出scala的trail,先编译java的话,会报错。
<target name="compile" depends="clean,mkdir">

    <scalac srcdir="${java.src.dir}" destdir="${class.dir}" >
	<compilerarg line="-encoding UTF-8 " />
	<classpath refid="classpath" />
    </scalac>

    <javac srcdir="${java.src.dir}" destdir="${class.dir}" target="1.6"
		source="1.6" debug="on">
	<compilerarg line="-encoding UTF-8 " />
	<classpath refid="classpath" />
    </javac>
</target>
   3. 打包的时候,将 scala-library.jar 文件也放入到 WEB-INF/lib 下面。不然会有找不到class的错误。

这样打包以后,就放到tomcat里面直接跑就可以了。不过这样不知道怎么去支持热部署  ,有知道的朋友望告知一下。不过jrebel对scala是免费的,这个还没去研究怎么整合进来。

package me.ours.controllers

import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.servlet.ModelAndView

@Controller
class IndexController {

  @RequestMapping(Array { "/" })
  def index(): String = "index"
    
  
  @RequestMapping(Array {"/test"})
  def test(): ModelAndView ={
    return new ModelAndView("index","message","Scala!!")
  }
}
上面是用scala写的一个spring的controller。如果有人需要工程的话,我可以分享出来。


转载于:https://my.oschina.net/FengJ/blog/123509

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值