文档章节

用Scala 开发 Spring MVC

ForEleven
 ForEleven
发布于 2013/04/17 22:55
字数 481
阅读 8.3K
收藏 20

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

      最近尝试用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。如果有人需要工程的话,我可以分享出来。


© 著作权归作者所有

ForEleven

ForEleven

粉丝 208
博文 32
码字总数 28047
作品 1
架构师
私信 提问
加载中

评论(14)

ForEleven
ForEleven 博主

引用来自“诸葛囧明”的评论

求工程的git 谢谢
找到了,在这个里面http://git.oschina.net/for-1988/Simples
ForEleven
ForEleven 博主

引用来自“诸葛囧明”的评论

求工程的git 谢谢
代码我也找不到了,如果想spring结合scala,可以使用这个项目http://hub.darcs.net/psnively/spring-scala
纯洁徐
纯洁徐
求工程的git 谢谢
廖师虎
廖师虎
其实用gradle可能更合适
LiangShao
LiangShao

引用来自“oldpig”的评论

1. 跟scala有关的代码都应该用sbt
2. 这种用法完全没有体现scala的好处,只会徒增编译时间,反生产力

很对。。。sbt就是scala的伴
廖师虎
廖师虎
springsource有个spring-scala子项目,已经1.0M2了, https://github.com/SpringSource/spring-scala,用的Gradle做构建工具。
ForEleven
ForEleven 博主

引用来自“曾建凯”的评论

广州人民发来贺电。

把scala-library.jar拖进tomcat的lib目录,即可支持scala编译后的class了,同时支持热部署。

恩,是可以热部署的,我也发现了。jrebel对scala免费的,可以去尝试下
曾建凯
曾建凯
鼓励多搞这些别人没尝试过的东东,我搞scala的时候可苦了,连个好用点的IDE都米有……
曾建凯
曾建凯
广州人民发来贺电。

把scala-library.jar拖进tomcat的lib目录,即可支持scala编译后的class了,同时支持热部署。
羊八井
羊八井
scala-ide,有插件的!
Spring Scala 实践

项目代码 http://git.oschina.net/for-1988/Simples Spring Scala 实践 Spring Scala 项目是Spring团队提供的,为了简化在 Scala 应用中使用 Spring 框架。我们相信很多 Spring 用户想尝试 ...

ForEleven
2014/05/06
6.4K
8
想找工作了,不知道自己的价,来问问

三月份辞职,开淘宝店卖女鞋(http://senseyinxiang.taobao.com/),太笨做不起来,熬不住了,想再找工作,找不到行情,求指导指导。 基本 某某 男 1990-02 软件工程本科 https://github.com/l...

黎明伟
2013/07/08
3.7K
31
精通Android需要什么技术?

我本是一个开发JAVA的初级程序员,主要开发JAVAWEB后端,兼前端;目前能独立完成中小型Web开发,及微信公众号开发; 目前掌握的技术有JAVA, Python, Scala, js+h5+css 掌握的框架有 SpringBo...

狂暴虐杀者
2018/05/08
1.4K
9
【Spring Boot 实战开发】第2讲 Kotlin类型系统与空安全

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。在 Java 开发领域的诸多著名框架:Spring 框架及其衍生框架、做缓存Redis、消息...

程序员诗人
2018/04/19
0
0
【Spring Boot 实战开发】第1讲 Kotlin 的极简特性之:隐式类型与函数式编程

《Spring Boot 2.0极简教程》—— 基于 Gradle + Kotlin 的企业级应用开发最佳实践 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过...

程序员诗人
2018/04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

数据结构和算法 | 第一部分第五课:算法复杂度实践

>作者 谢恩铭,公众号「程序员联盟」。 转载请注明出处。 原文:https://www.jianshu.com/p/060ef52580af >《数据结构和算法》全系列 内容简介 前言 寻找最大和最小的元素 寻找不重复的元素 ...

程序员联盟_
14分钟前
8
0
tomcat项目改造->jerryrat

先做一点笔记防止自己忘了,还有很多小细节要慢慢调试, 有些其实也不是漏洞,但是等保测试有些特殊的情况,只能去做兼容性的处理 1:编译tomcat8 https://tomcat.apache.org/download-80.cgi...

国产大熊猫
15分钟前
25
0
aop:aspect与aop:advisor的区别

https://www.jianshu.com/p/40f79da0cdef

osc_6jhxf9ab
16分钟前
22
0
Python破解24点游戏,从此打扑克就没输过

文源网络,仅供学习之用,如有侵权请联系删除。 24点游戏 对于任意给定的四张扑克牌,计算是否有赢得24点游戏的方法(即使用加、减、乘、除四则运算凑成24的方法);如果有的话,列出所有可能...

Python圈子
16分钟前
12
0
阿里短信回执.net sdk的bug导致生产服务cpu 100%排查

一:背景 1. 讲故事 去年阿里聚石塔上的所有isv短信通道全部对接阿里通信,我们就做了对接改造,使用阿里提供的.net sdk。 网址:https://help.aliyun.com/document_detail/114480.html 同事...

osc_slnrw1du
17分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部