当前位置: 首页 > news >正文

凡科做的网站好垃圾/广告外链购买交易平台

凡科做的网站好垃圾,广告外链购买交易平台,seo优化主要做什么,设计公司logo需要多少钱Scala是一个运行在Java JVM上的面向对象的语言。它支持函数编程,在语法上比Java更加灵活,同时通过Akka库,Scala支持强大的基于Actor的多线程编程。具有这些优势,使得我最近很想在一个新的项目中使用Scala,但是在新项目…

Scala是一个运行在Java JVM上的面向对象的语言。它支持函数编程,在语法上比Java更加灵活,同时通过Akka库,Scala支持强大的基于Actor的多线程编程。具有这些优势,使得我最近很想在一个新的项目中使用Scala,但是在新项目中,抛弃我们常用的Java和C#,而直接使用一门新的语言是很困难的。这不仅包括学习新语言这个过程,未来,更为项目的长期发展和日后的开发和支持增加了很多变数。毕竟一门新的语言是不可能在很短的时间内在行业中达到Java和C#的流行度的。

那么,我们就不能在新项目中应用和实践Scala么?通过我的实践,我发现其实我们可以通过简单的Maven配置把Scala集成到我们现有的Java项目中。这样我们可以很简单得在Java项目中集成和使用Scala。在这篇blog里,我给出一个用Scala实现的Hello World Servlet。项目的代码可以在https://github.com/mcai4gl2/scala-integration中找到。

在开发之前,我们首先要配置Scala环境。我在Java开发中使用IntelliJ,首先,在IntelliJ中安装Scala插件。插件安装好后,我们重启IntelliJ,这样我们的运行环境就配置好了。

我们用IntelliJ新建一个Maven项目,添加如下Maven Dependency:

org.scala-lang

scala-library

2.10.1

同时添加如下plugin:

org.apache.maven.plugins

maven-surefire-plugin

2.8.1

**/*.java

**/*.scala

org.scala-tools

maven-scala-plugin

2.15.2

scala-compile-first

process-resources

compile

scala-test-compile

process-test-resources

testCompile

这样就完成了对我们的Java项目添加Scala的步骤。

在下面的Scala代码中,我们实现了一个简单的Servlet返回Hello World:

package weblog.examples.scala

import org.springframework.stereotype.Controller

import org.springframework.web.bind.annotation.{RequestMapping, RequestMethod}

import javax.servlet.http.{HttpServletRequest, HttpServletResponse}

import java.io.OutputStream

import org.apache.log4j.Logger

import org.apache.commons.io.IOUtils

import HelloWorldServlet._

@Controller

class HelloWorldServlet {

@RequestMapping(value = Array("/"), method = Array(RequestMethod.GET))

def helloworld(request: HttpServletRequest, response: HttpServletResponse, outputStream: OutputStream) {

log.info("helloworld is called")

response.setStatus(HttpServletResponse.SC_OK)

IOUtils.write("HELLO WORLD!", outputStream)

outputStream.flush

outputStream.close

}

}

object HelloWorldServlet {

private var log: Logger = Logger.getLogger(classOf[HelloWorldServlet])

}

当这段代码通过编译之后,就会生成和Java一样的class文件。我们可以看到,用Scala编写的Servlet代码更加简洁,这可以大大提高我们的编程效率。

由于Scala语言普及度的局限,在项目中普及使用还是很有风险的。但是,在我们编写Unit Test的过程中,我们可以很好的使用Scala来提高我们的编程效率。下面是一个用Scala写的对我们的HelloWorldServlet进行测试的单元测试的例子:

package weblog.examples.scala

import org.springframework.web.servlet.DispatcherServlet

import org.springframework.mock.web.{MockServletConfig, MockHttpServletResponse, MockHttpServletRequest}

import org.junit.{Assert, Test, After, Before}

class HelloWorldServletTest {

private var dispatcherServlet : DispatcherServlet = _

private var httpRequest : MockHttpServletRequest = _

private var httpResponse : MockHttpServletResponse = _

@Before

def before() {

val config = new MockServletConfig

config.addInitParameter("contextConfigLocation", "classpath:servlet-context.xml")

dispatcherServlet = new DispatcherServlet

dispatcherServlet.init(config)

httpRequest = new MockHttpServletRequest

httpResponse = new MockHttpServletResponse

}

@After

def after() {

dispatcherServlet = null

httpRequest = null

httpResponse = null

}

@Test

def testHelloWord() {

httpRequest.setMethod("GET")

httpRequest.setRequestURI("/")

dispatcherServlet.service(httpRequest, httpResponse)

val response = httpResponse.getContentAsString

Assert.assertEquals("HELLO WORLD!", response)

}

}

这段代码,与Java相比较要简洁很多,这可以大大提高我们的编程效率。

与完全基于Scala开发相比,这种Java与Scala的混合开发方式有以下几个优势:

项目本身还是基于Java的,可以很好的使用现有的Java工具,包括CI继承,等

混合了Java和Scala,可以使程序员根据自己的需要在不同的情况下选择更合适的语言

在项目未来的持续维护上,我们不需要使用Scala的专门程序员,即使是完全没有Scala经验的Java程序员,也可以进行代码维护

同时我们还可以用这种混合开发方式,对现有的Java项目进行修改,而不是完全的重写。希望这种混合开发方式可以帮助希望使用Scala而又在工作中没有机会的朋友。

http://www.lbrq.cn/news/1280701.html

相关文章:

  • 重庆网站制作福州/网站建设报价方案
  • 上海专业网站建设服/网络营销与市场营销的区别
  • 看那种片哪个网站好用/电商网站分析
  • 汕头网站快速排名提升/百度指数十年
  • 做本地门户网站/网站推广交换链接
  • 做网站龙华/公司网站建站要多少钱
  • 运动猿app 网站开发/百度pc版网页
  • 磁力网站怎么做的源码/seo深圳培训班
  • 网站开发的总结与展望/百度识图查图片
  • 卧龙区网站建设哪家好/小广告多的网站
  • 品牌网站建设策/百度一下网页版浏览器百度
  • 网站建设专业介绍/推广公众号的9种方法
  • 做爰片姿势网站/网站超级外链
  • 个人业务网站制作/yy直播
  • 网站申请/百度小说排名
  • 动态网站的设计与实现/短信广告投放
  • 创建一个网站多少钱/百度投诉中心24小时电话
  • 做淘宝美工的网站/樱花12e56
  • 网站开发完整的解决方案/注册网站免费注册
  • 网站开发工资淄博/品牌传播推广方案
  • wordpress the7/seo外包方法
  • 怎么用vps做网站/如何提高百度搜索排名
  • 网站建设规划ppt/西安seo服务公司
  • 义乌外贸网站制作/seoul是韩国哪个城市
  • 织梦模板可以在wordpress用/windows优化大师有必要安装吗
  • 烟台做网站公司/成人职业技能培训有哪些项目
  • 梭子手做鱼网站/武汉网络推广有限公司
  • 天天自学网网址/苏州seo报价
  • 宁波市镇海建设交通局网站首页/网站制作的服务怎么样
  • 顺昌网站建设/数据分析报告
  • 【最新版】防伪溯源一体化管理系统+uniapp前端+搭建教程
  • IntelliJ IDEA 中左上方未显示项目根目录问题
  • Cacti 前台命令注入漏洞(CVE-2022-46169)
  • 【lucene】AttributeSource概述
  • 深入解析MongoDB分片原理与运维实践指南
  • 云原生介绍